2013-01-07 58 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

嗨, 我想我可以做点什么,明天再给它更多的思考。谢谢。 –