我有一個php腳本作爲隨機圖像生成器。腳本在數據庫中查詢用戶的圖像,並隨機將路徑返回到一個。一旦路徑被選擇,這裏是負責返回圖像的部分代碼。如何通過php腳本加載圖像緩存
header('Content-Transfer-Encoding: binary');
header('Content-Type: image/jpeg');
header('Content-Length: ' . filesize($path));
echo file_get_contents($path);
我從客戶端調用它像這樣
image.src = "/database/getRandomImage.php";
我每次刷新頁面我隨機得到一個新的形象。但是,如果我多次調用getRandomImage.php
來排列並排的圖像,它們將全部是相同的圖像。如果我添加一個隨機屬性的電話像這樣
image.src = "/database/getRandomImage.php?path=" + Math.random() * 100;
圖片變得隨機。我認爲這意味着瀏覽器基於我傳遞的隨機屬性來緩存它們。問題是這個屬性與實際圖像無關。兩張不同的圖像可能會被緩存爲相同的圖像,並且可能無法從緩存中檢索相同的圖像。 getRandomImage.php
是否有任何方式通知瀏覽器它正在發回的圖片?
請不要慢請求圖像名稱然後請求圖像? – puk
我想在理論上。但這就是網絡的工作原理。圖像具有特定的URL,可以訪問以下載該圖像數據。如果從數據庫中獲取圖片url真的是一個突破性能問題的交易,那麼你很可能有更大的問題。但是如果你不能使用緩存,因爲你沒有獨特的網址來顯示你的圖片,那麼在他們第一次看到圖片後,它可能會慢得多。 –
它不是從緩慢的數據庫中獲取,而是我擔心的http請求(我想現在已經消失了)。從本質上講任何涉及Ajax是如此之慢,彷彿它需要一秒鐘的3/4剛剛一命嗚呼我與這個解決方案假設設定的圖像,而加載頁面的,這個問題已經不存在 – puk