【问题标题】:Do GET requests in AJAX load all images?AJAX 中的 GET 请求会加载所有图像吗?
【发布时间】:2013-07-18 18:52:01
【问题描述】:

我对@9​​87654321@ 比较陌生,通常我只是对事情进行处理以使其正常工作。 如果使用 type:GET AJAX 请求包含大量图片的 url。

 $.ajax({
    type: "GET",
    url: "/works/" + x,
    success: postImgModal
  });

成功:返回一堆 HTML 的 div 和大图像进入内存(对不起,我不知道正确的词)

当请求返回时,是否会渲染所有这些图像?因此,不是很优化?还是它们以非常小的纯文本形式出现?

我知道开发者工具有一些关于前端/后端优化的瀑布视图;不幸的是,这些观点对我来说没有意义。你们能否建议任何可以帮助我理解前端/后端优化以及如何使用 chrome 工具(或其他建议的工具)对我有利的教程。希望在未来,我可以自己解决这些问题。或者至少提出更好的问题。

【问题讨论】:

  • ajax调用的html响应插入页面时会发生什么?你的图片会加载吗?
  • 是的,如果我将 html 插入页面,它会加载所有图像。但是 JSON 也是如此

标签: javascript jquery ajax optimization


【解决方案1】:

当 AJAX 请求返回 HTML 时,这就是所发生的一切——返回 HTML 文本。如果您从未将该 HTML 添加到您的 DOM 中,那么它就结束了。

如果您将 HTML 添加到 DOM,那么将检查任何 <img> 标记。如果给定 URL 的图像数据在浏览器缓存中不可用,则将发出单独的 HTTP 请求。

如果您想避免这种情况,您可以在 HTML 中使用 data URLs,不过正如人们所预料的那样(做鬼脸),这会因 Internet Explorer 的流行而变得复杂。

【讨论】:

  • 我对此并没有任何用处,但我很好奇。您可以在一个 HTTP 请求中提供多个图像吗?假设当您执行包含 10 个文本图像的 ajax 请求时,这些图像会从任何地方单独请求,还是可以分组?
  • @MatthewHarwood 是的,这是一种方法。您还可以提供原始图像数据(RGB 像素或某种压缩形式)并将其渲染到 <canvas>
  • 我知道有可能更好的时间投资来进行优化。但是,您知道了解 RGB 像素 + 画布内容的资源吗?值得吗?哈哈,我的电子笔在这些东西上成长。
  • 更简单的组合图像的方法是使用“CSS Sprites”
  • @MatthewHarwood 用于原始像素的 Canvas API 非常简单 - 只是“getImageData”和“putImageData”,described here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-28
  • 1970-01-01
  • 1970-01-01
  • 2015-01-12
  • 2011-11-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多