• <kbd id="qyk40"></kbd>
  • <strike id="qyk40"></strike><samp id="qyk40"><pre id="qyk40"></pre></samp>

    異步 JavaScript 和 XML(Asynchronous JavaScript and XML,Ajax)無疑是最流行的新 Web 技術。“結合 Ajax 進行 PHP 開發” 這個系列包括兩部分,我們將完全使用 PHP 和 Simple Ajax Toolkit (Sajax) 創建一個簡單的相冊作為在線 Web 應用程序。我們首先用標準的 PHP 開發方法編寫簡單的相冊,然后再用 Sajax 將其變成活動的 Web 應用程序。

    創建一個簡單的相冊

    本文將使用兩種方法創建一個簡單的相冊:傳統的 Web 應用程序和基于 Sajax 的應用程序。我們將用 PHP 編寫一個相冊,讀取某一目錄中的內容,顯示縮略圖組成的表格。如果用戶單擊一個縮略圖,就會完全展開該圖像。因為編寫的是傳統應用程序,所以每次單擊都會是一個新的 HTTP 請求,而參數則作為 URL 的一部分傳遞。

    您將學習如何將 Sajax 庫應用于相冊,了解為何使用 Sajax 可以加快應用程序的開發。

    添加一個分頁器表

    訪問相冊的用戶需要某種快速查看照片的方法。因為很多大照片不容易在一頁上顯示,所以需要創建一個分頁器 —— 每次顯示少量縮略圖的簡單表格。還要編寫導航,幫助用戶在圖像列表中來回移動。

    為了完成本文的剩余部分,后面假設照片保存在 /images 子目錄中,縮略圖則放在 /images/thumbnails 中。可以在代碼中做適當的修改。此外,我們還假定縮略圖和對應的圖像使用相同的名稱。

    分頁器應該傳遞兩個參數:start 是按照字母順序顯示的第一幅照片的索引號,step 是顯示的照片數。

    清單 1. 相冊查看器

    /*
    * Find a list of images in /images and provide thumbnails
    */
    function get_table ( $limit_start = 0, $limit_step = 5 ) {
    $images = get_image_list('images');

    // Generate navigation for Previous and Next buttons
    // Code given below

    $output .= '

    ';
    $columns = 5;
    foreach ($images as $index => $image) {

    // Begin directory listing at item number $limit_start
    if ( $index < $limit_start ) continue;

    // End directory listing at item number $limit_end
    if ( $index >= $limit_start + $limit_step ) continue;

    // Begin column
    if ( $index - $limit_start % $columns == 0 ) {
    $output .= '

    ';
    }

    // Generate link to blown up image (see below)
    $thumbnail = '';
    $output .= '

    ';
    // Close column
    if ( $index - $limit_start % $columns == $columns - 1 ) {
    $output .= '';
    }
    }
    $output .= '
    ' . get_image_link($thumbnail, $index) 
    . '
    ';
    return $nav . $output;
    }

    這個表很簡單,它從索引號 $limit_start 開始遍歷圖片列表。然后放上每個圖片的縮略圖,每五張圖片作為一行。達到 $limit_start + $limit_step 的時候循環結束。

    該表是目錄列表的可視化表示,因此需要一個函數列出目錄中的所有圖像。清單 1 中的 get_file_list() 函數用索引數組返回 /images 目錄中的所有圖片列表。下面是一個示例實現。

    清單 2. get_file_list 實現

    function get_image_list ( $image_dir ) {
    $d = dir($image_dir);
    $files = array();
    if ( !$d ) return null;

    while (false !== ($file = $d->read())) {
    // getimagesize returns true only on valid images
    if ( @getimagesize( $image_dir . '/' . $file ) ) {
    $files[] = $file;
    }
    }
    $d->close();
    return $files;
    }

     

    穩定

    產品高可用性高并發

    貼心

    項目群及時溝通

    專業

    產品經理1v1支持

    快速

    MVP模式小步快跑

    承諾

    我們選擇聲譽

    堅持

    10年專注高端品質開發
    • 返回頂部
    无码欧精品亚洲日韩一区夜夜嗨| 精品久久中文网址| 日韩精品在线一区二区| 久久精品亚洲一区二区三区浴池| 国模精品一区二区三区| 国产麻豆精品在线观看| 99精品人妻无码专区在线视频区| 精品久久久久久国产牛牛app| 国产精品国产三级国产AV麻豆| 久久久国产精品网站| 精品久久久久久久久久久久久久久 | 熟女少妇精品一区二区| 亚洲国产精品成人一区| 99视频30精品视频在线观看| 99re热久久这里只有精品6| 国产精品麻豆入口| 日韩一品在线播放视频一品免费| 亚洲日韩精品无码专区| 亚洲av日韩av高潮潮喷无码 | 少妇伦子伦精品无吗| 国产色精品vr一区区三区| 国产精品免费久久久久影院 | 国产精品久久波多野结衣| 亚洲一区二区三区精品视频| 中日韩精品电影推荐网站 | 亚洲精品午夜久久久伊人| 久久久久久国产精品免费无码| 嫖妓丰满肥熟妇在线精品| 精品视频一区二区三区| 亚洲国产精品碰碰| 国产观看精品一区二区三区| 国产精品成人国产乱一区| 国产精品无码一区二区在线观一| 无码人妻精品一区二区三区99不卡 | 国产精品天天在线午夜更新| 久久国产精品最新一区| 国产福利电影一区二区三区久久久久成人精品综合 | 糖心vlog精品一区二区三区| 亚洲综合精品伊人久久| 亚洲AV无码之国产精品| 精品国产杨幂在线观看|