草庐IT

javascript - 智能加载 1000 张图像

coder 2024-05-08 原文

我在同一个页面上有 1000 张图片。不幸的是,我不能在它们上面使用 Sprite ,因为图像的数量不断增加。所以你可以想象它发送了 1000 个 HTTP 请求,所以加载图像需要很多时间,而且这对访问者来说不是很好的体验。

我看过一个名为Lazy Load 的脚本,但我在想是否有一种更智能的方式 来加载图像(关于 SEO 很好,加载图像更快,有利于用户体验)。

有没有办法以更好的方式加载图像?

详细说明:

我必须在同一页面上加载所有 1000 张图像,没有其他出路。它会是什么样子或者我要用它做什么,我实际上已经在 http://bloghutsbeta.blogspot.com/2012/03/testing-2_04.html 为您制作了一个测试页 .

如您所见,我正在使用 jQuery Quicksand Jacek Galanciak 制作的插件。我与这个插件没有良好的关系,就好像我要向它添加 jQuery 或脚本一样。它会要求一个回调函数,这对我来说是一个盲点。 (这就是为什么我为它制作了一个 CSS 工具提示 :D)

我的测试页里有很多图片,但没有1000张,等到1000张的时候,就乱七八糟了。所以我不知道在这种情况下如何处理 1000 张图像。 (顺便感谢大家的可爱评论)

最佳答案

很少有用例支持在单个页面上提供数百或数千张图像。一个这样的例子是谷歌图像。这是正确的做法:

https://www.google.com/search?tbm=isch&q=jeff+atwood

  1. 延迟加载图像 这是一项要求。如果图像在折叠下方(在可见文档区域之外),则没有理由加载它们。

  2. 使用分页 Google 图片将结果分成多个页面,一次只加载少量图片。 Google 还使用一些 JavaScript-fu 来实现无限滚动 - 一旦浏览器接近当前结果的底部,它就会发送加载更多结果页面的请求并将它们注入(inject)到当前结果的底部页。

  3. SEO:没有 JavaScript,没问题 再次访问 Google 图片链接,但要关闭 JavaScript。您仍然可以浏览结果页面 - 每页大约有 15 张图片。搜索引擎可以索引此图像内容。

  4. 最大图像显示 一旦显示超过 150 张图像,请在页面底部放置一个按钮以“加载更多结果”- 此按钮会重新加载整个页面,但会开始在第 151 张图像而不是第 1 张。浏览器必须绘制的每张图像都会占用更多的内存和 CPU 周期。滚动长列表可以快速让移动浏览器或适度的桌面进行抓取。

加载数以千计的图像是不好的——它会使您的服务器负担过重,从而破坏用户体验。对于用户想要浏览的任何大型数据集都是如此。

关于javascript - 智能加载 1000 张图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10137758/

有关javascript - 智能加载 1000 张图像的更多相关文章

  1. ruby - 如何在续集中重新加载表模式? - 2

    鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende

  2. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

    我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

  3. ruby-on-rails - 使用 config.threadsafe 时从 lib/加载模块/类的正确方法是什么!选项? - 2

    我一直致力于让我们的Rails2.3.8应用程序在JRuby下正确运行。一切正常,直到我启用config.threadsafe!以实现JRuby提供的并发性。这导致lib/中的模块和类不再自动加载。使用config.threadsafe!启用:$rubyscript/runner-eproduction'pSim::Sim200Provisioner'/Users/amchale/.rvm/gems/jruby-1.5.1@web-services/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:105:in`co

  4. ruby-on-rails - 添加回形针新样式不影响旧上传的图像 - 2

    我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司

  5. ruby-on-rails - 从应用程序中自定义文件夹内的命名空间自动加载 - 2

    我们目前正在为ROR3.2开发自定义cms引擎。在这个过程中,我们希望成为我们的rails应用程序中的一等公民的几个类类型起源,这意味着它们应该驻留在应用程序的app文件夹下,它是插件。目前我们有以下类型:数据源数据类型查看我在app文件夹下创建了多个目录来保存这些:应用/数据源应用/数据类型应用/View更多类型将随之而来,我有点担心应用程序文件夹被这么多目录污染。因此,我想将它们移动到一个子目录/模块中,该子目录/模块包含cms定义的所有类型。所有类都应位于MyCms命名空间内,目录布局应如下所示:应用程序/my_cms/data_source应用程序/my_cms/data_ty

  6. ruby-on-rails - 在 Ruby (on Rails) 中使用 imgur API 获取图像 - 2

    我正在尝试使用Ruby2.0.0和Rails4.0.0提供的API从imgur中提取图像。我已尝试按照Ruby2.0.0文档中列出的各种方式构建http请求,但均无济于事。代码如下:require'net/http'require'net/https'defimgurheaders={"Authorization"=>"Client-ID"+my_client_id}path="/3/gallery/image/#{img_id}.json"uri=URI("https://api.imgur.com"+path)request,data=Net::HTTP::Get.new(path

  7. python ffmpeg 使用 pyav 转换 一组图像 到 视频 - 2

    2022/8/4更新支持加入水印水印必须包含透明图像,并且水印图像大小要等于原图像的大小pythonconvert_image_to_video.py-f30-mwatermark.pngim_dirout.mkv2022/6/21更新让命令行参数更加易用新的命令行使用方法pythonconvert_image_to_video.py-f30im_dirout.mkvFFMPEG命令行转换一组JPG图像到视频时,是将这组图像视为MJPG流。我需要转换一组PNG图像到视频,FFMPEG就不认了。pyav内置了ffmpeg库,不需要系统带有ffmpeg工具因此我使用ffmpeg的python包装p

  8. ruby - 是否有将图像文件转换为 ASCII 艺术的命令行程序或库? - 2

    有这样的事吗?我想在Ruby程序中使用它。 最佳答案 试试这个http://csl.sublevel3.org/jp2a/此外,Imagemagick可能还有一些东西 关于ruby-是否有将图像文件转换为ASCII艺术的命令行程序或库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6510445/

  9. ruby-on-rails - 使用 Dragonfly 从 URL 分配图像 - 2

    我正在使用Dragonfly在Rails3.1应用程序上处理图像。我正在努力通过url将图像分配给模型。我有一个很好的表格:{:multipart=>true}do|f|%>RemovePicture?Dragonfly的文档指出:Dragonfly提供了一个直接从url分配的访问器:@album.cover_image_url='http://some.url/file.jpg'但是当我在控制台中尝试时:=>#ruby-1.9.2-p290>picture.image_url="http://i.imgur.com/QQiMz.jpg"=>"http://i.imgur.com/QQ

  10. ruby-on-rails - 使用 javascript 更改数据方法不会更改 ajax 调用用户的什么方法? - 2

    我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的

随机推荐