1

我正在构建一个简单的网站,如果需要,它需要能够完全离线运行。旨在成为 50 多页的可搜索参考手册。

我需要在打开一页时缓存整个网站。我正在使用 appcache 清单执行此操作,并且让网站缓存并在离线移动设备上查看似乎工作正常。

该网站有一个基本的 JavaScript 搜索工具(这是一个免费下载软件),并且在在线时这个搜索工作得很好。一旦 Internet 连接停止并使用缓存版本,搜索就不再起作用,显示以下两种症状之一: 1. 单击按钮但没有任何反应或 2. 显示“找不到网页”类型的错误。

4

1 回答 1

2

引用自https://developer.mozilla.org/en-US/docs/HTML/Using_the_application_cache#Gotchas

永远不要使用传统的 GET 参数(如 other-cached-page.html?parameterName=value)访问缓存文件。这将使浏览器绕过缓存并尝试从网络获取它。要链接到具有在 JavaScript 中解析的参数的缓存资源,请使用链接的哈希部分中的参数,例如 other-cached-page.html#whatever?parameterName=value。

但这正是您的 js-search 所做的。它尝试使用 XHR 加载像“http://www.filemanage.co.uk/offline/index.html?1350563635665”这样的子页面。

作为修复尝试这个

// change in function sendRequest line 228 from 
this.httpRequest.open("GET", uri+"?"+q, true);
// to
this.httpRequest.open("GET", uri, true);
于 2012-10-18T12:42:31.037 回答