javascript - 使用 Ajax 预加载(=缓存)一个完整的网站——可能出现的问题?

标签 javascript jquery ajax performance caching

我目前正在为一位建筑师构建一个作品集网站,该网站的页面上有大量图片。 导航是使用 history.js (=AJAX) 完成的。为了节省加载时间并使整个过程更加“快速”,我编写了一个脚本,用于抓取页面主体以获取指向其他页面的链接,并在后台自动获取这些链接。到目前为止,它就像一个魅力。

它基本上保留了一个包含所有链接的队列数组。一个 setTimeout() 函数通过它们工作并使用 jQuery $.ajax() 获取每个页面。生成的 HTML 存储在 Javascript 对象中。

现在,这是我的问题: 在不同的机器/浏览器/操作系统上使用它可能会出现什么问题?

我在想:

  • 最大。 javascript 对象/可变大小(获取的 HTML 存储在 javascript 对象中)
  • 可能的性能问题
  • 最大。异步请求的数量?
  • ……你能想到什么?

提前致谢

业余程序员

最佳答案

虽然在客户端缓存整个网站可能是个好主意,但有很多事情可能会导致问题:

  • 内存
  • 网络服务器上不必要的负载
  • 将不需要的页面加载到内存中
  • 一些用户的互联网受到限制,因此在这些情况下加载整个网站并不明智
  • 一旦用户离开或刷新整个“缓存”就消失了

我会做的是首先尝试优化服务器端。 添加一堆从数据库到用户的缓存机制,“Expires”头可以真正帮助你。

如果这没有帮助,我会考虑在离线缓存中缓存一些页面(哪些页面由您决定),请参阅 ( HTML 5 Offline Features )

这样即使在页面重新加载时您也是安全的,将内存保持在最低限度并且只加载您需要的内容。

PS:不要尝试重新发明浏览器已有的东西 :P

关于javascript - 使用 Ajax 预加载(=缓存)一个完整的网站——可能出现的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12519716/

相关文章:

javascript - mocha with nodejs assert 挂起/超时为 assert(false) 而不是错误

javascript - AudioContext.createJavaScriptNode 的替代方案

jquery - 用半透明 PNG 覆盖 <A>

javascript - 如何使用 jQuery 查找和替换 HTML 或 XML 文档中两个标签之间的文本?

javascript - 将图像从 Canvas 保存到 WordPress 媒体库(或服务器)

除非我直接将 JavaScript 包含在 View 中,否则 JavaScript 无法工作

javascript - AngularJS onload - 未捕获的 ReferenceError : $scope is not defined

JavaScript SpellCheck 覆盖了我的 css 设计

javascript - 函数未定义即使它位于同一文件中

javascript - 未捕获的类型错误 : Cannot read property 'length' of null