无限滚动在离线状态下不起作用

Infinite scrolling doesn't work offline

我正在努力学习 jQuery,尤其是从真实示例中学习 jScroll。我发现 this website 对你来说可能看起来很傻,但它非常简单,所以它是 jScroll 工作的一个很好的例子。

当我尝试将网页(Ctrl+S 或仅将页面另存为)保存到我的计算机以供离线使用时出现问题。滚动不起作用。它只是一个静态页面。我在 Chrome 和 Firefox 中都试过了。

你也遇到过这种情况吗?如果可以,是否可以简单地解释为什么它不起作用?

tl;dr 马的腿是通过来自 http://endless.horse/ 的 ajax 请求动态添加的,这是一个跨源 http 请求,因此出于浏览器安全原因受到限制。此外,您需要成为 运行 允许 ajax 请求的服务器。

https://developer.chrome.com/extensions/xhr https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

当触发滚动事件时,它会拉入 http://endless.horse/legs.html 并将其附加到 html 以连续 "grow" 腿。它在本地不起作用的原因有两个:

  1. 出于安全原因,不允许跨源 HTTP 请求。 https://developer.chrome.com/extensions/xhr
  2. 您需要通过 HTTP 服务器 运行 html 文件才能使 ajax 正常工作。保存页面并打开后,url 以这样的内容开头 file:/// - 那是因为您是直接打开文件,而不是通过网络服务器 运行 打开它。

如果您是 运行 OSX 或 Linux,您可以使用 python 创建一个简单的服务器。 1. 打开你的终端 2. cd /path/to/horse/project 3. python -m SimpleHTTPServer 5000 4.访问http://localhost:5000/

在 Windows 上,下载 XAMPP 并按照说明进行操作。

不使用 "Save As" 功能,而是在所服务文件夹的根目录下创建一个新的 index.html。在 http://endless.horse/ copy/paste 上查看源代码,将其放入您的新文件中。 "Save As" 功能对保存的 HTML 文件进行了大量编辑。您必须执行此操作并确保 index.html 文件正确链接到 jquery.jscroll.jslegs.html 文件。