2013-01-07 59 views
0

我在這裏遇到了某種雞蛋情況。 我有一個頁面加載了很多圖片,並且我在滾動腳本上編寫了一個加載,就像Facebook或Google圖片一樣,所以當用戶進入頁面底部時,下一組圖像被加載。預防圖像爲啓用javascript的用戶加載圖像

由於服務器端圖像加載有點沉重,可能會減慢網站速度,我只是加載和存儲所有圖像緩存文件,加載到頁面,然後用JavaScript,我刪除所有人保留只頭幾個,然後逐漸加載其餘的。

現在我遇到的第一個問題是瀏覽器不斷加載圖像,即使它們已被刪除使用JavaScript。爲了解決它,我添加了一個css類到我不想加載的圖像,並將它們設置爲display none,然後使用javascript刪除它們。

但我仍然不希望網頁成爲非JavaScript用戶和crawslers能夠看到整個頁面。並不能找出一種方法來刪除這個「沒有顯示」沒有JavaScript。

提前致謝。

+1

等譯的「頁面編號」的基礎上的PHP文件,什麼是你的實際代碼?我們無法幫助/解決我們看不到的問題。 – Cerbrus

+0

無論元素是否可見,瀏覽器都傾向於加載在''標籤中找到的加載圖像URL。它*可能會將你的no-JS標記放在'

回答

0

爲什麼不簡單地使用ajax來加載下一批? 它被加載到段通過這種方式,負荷分散,你不需要做難度很大的加價......什麼,我在這幾樣的情況下使用

我自己的jQuery的例子。 我有決定什麼需要被渲染上獲取我的MySQL select ..... limit $pagenumber,15

  <script type="text/javascript"> 
    alreadyloading = false; 
    nextpage = 1; 

    $(window).scroll(function() 
     { 
     if ($('body').height() <= ($(window).height() + $(window).scrollTop())) 
      { 
      if (alreadyloading == false) 
       { 
       var url = document.location.href + "/ajaxload/" + (nextpage * 15); 
       alreadyloading = true; 
       $.ajax(url).done(function(data) 
        { 
        obj = document.getElementById('images'); 
        obj.innerHTML += data; 
        alreadyloading = false; 
        nextpage++; 
        }); 
       } 
      } 
     }); 
    </script> 
+0

你好, 我實際上使用ajax來加載下一批,但我第一次加載完整的東西。我的腳本所做的是: 1)加載完整的緩存文件。 2)刪除未使用的圖像刪除javascript 3)滾動時,根據需要在緩存文件中重新加載一組圖像。 但我無法在沒有JavaScript和搜索引擎抓取工具的用戶的單個頁面上顯示所有這些內容。 –

+0

這很簡單。將noscript標籤用於漫遊器等的整個頁面... 這就是它應該完成的方式。啓用javascript的瀏覽器將忽略noscript標記中的所有內容。 簡單的測試方法:Google chrome,右鍵單擊檢查元素。點擊網絡面板並保持打開狀態。然後加載你的頁面沒有ajax和所有圖像在noscript標籤。不應加載單個圖像。如果確認了,只需放入一個noscript標籤即可。如果沒有,請回來,我會幫助您思考。 – Tschallacka

+0

嗨, 我想我可以做點什麼,明天再給它更多的思考。謝謝。 –