问题标签 [offline-browsing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
13718 浏览

ios - iOS:Apple 是否为保存到主屏幕的 Web 应用禁用了 HTML5 离线功能?

我一直在做很多工作,让一些 Web 应用程序使用 HTML5 清单在 iOS 上脱机工作。我遇到了其他人遇到的典型问题并修复了它们,一切似乎都运行良好——除了我将网络应用程序保存到我的 iPhone 4 上的桌面的情况。

如果我这样做然后启用飞行模式,我会在尝试通过主屏幕访问应用程序时收到以下警报:“您的应用程序名称无法打开,因为它没有连接到互联网。” 离线时通过 Safari 浏览器访问该应用程序可以正常工作。

如果有人知道这是否是我的错误,或者甚至是解决问题的可能性很小,请告诉我。

即使下载新的金融时报网络应用程序(通过广泛的 localStorage 支持做得很好)在从主屏幕离线访问时也会导致错误。

技术规格:使用 iOS 4.3.3 运行 iPhone 4(但在 4.3.2 中也看到了问题)

0 投票
1 回答
210214 浏览

download - 下载网页的工作本地副本

我想下载一个网页的本地副本并获取所有的 css、图像、javascript 等。

在之前的讨论中(比如herehere,都是两年多),一般会提出两个建议:wget -phttrack。然而,这些建议都失败了。我非常感谢使用这些工具中的任何一个来完成任务的帮助;替代品也很可爱。


选项1:wget -p

wget -p成功下载了网页的所有先决条件(css、图像、js)。但是,当我在 Web 浏览器中加载本地副本时,该页面无法加载先决条件,因为这些先决条件的路径尚未从 Web 版本中修改。

例如:

  • 在页面的html中,<link rel="stylesheet href="/stylesheets/foo.css" />需要修正指向新的相对路径foo.css
  • 在css文件中,background-image: url(/images/bar.png)同样需要进行调整。

有没有办法修改wget -p以使路径正确?


选项 2:httrack

httrack似乎是镜像整个网站的好工具,但我不清楚如何使用它来创建单个页面的本地副本。在 httrack 论坛上有很多关于这个主题的讨论(例如这里),但似乎没有人有一个防弹的解决方案。


选项 3:另一个工具?

有些人建议使用付费工具,但我简直不敢相信那里没有免费的解决方案。

0 投票
2 回答
380 浏览

html - HTML 5“离线 Web 应用程序”中有哪些新功能尚未在所有浏览器中可用?

HTML 5 的“离线 Web 应用程序”功能有哪些新功能,但并非所有浏览器都可用?

离线缓存是浏览器的工作——它是如何成为 HTML 的工作的?

Web 缓存是一种用于临时存储(缓存)Web 文档(例如 HTML 页面和图像)的机制,以减少带宽使用、服务器负载和感知延迟。网络缓存存储通过它的文档副本;如果满足某些条件,则可以从缓存中满足后续请求。

正如 Wikipedia 的Web 缓存文章中所写。

这是为 W3C 网站中的离线 Web 缓存编写的:

为了使用户即使在网络连接不可用时也能继续与 Web 应用程序和文档进行交互——例如,因为他们在 ISP 的覆盖范围之外旅行——作者可以提供一个清单,其中列出了 Web 所需的文件应用程序脱机工作,这会导致用户的浏览器保留文件的副本以供脱机使用。

HTML 5 在缓存方面做得更好和不同的是什么?

它类似于Internet Explorer 5 中的离线模式吗?我们可以缓存超出浏览器空间限制的数据吗?

请给我一个例子,以便我了解 HTML 5 离线缓存和浏览器缓存的区别。

0 投票
1 回答
1094 浏览

html - HTML5 appcache - 让应用完全离线

我有一个 chrome webstore 应用程序,我在其中使用 appcache 从缓存中加载资源。我已经在使用 localStorage 来离线获取数据。

使应用程序脱机工作的问题是,如果我重新加载页面(脱机时),浏览器会检查清单,并且由于它无法访问清单 uri,因此我在控制台中收到错误消息。而已。在这一点之外没有任何事情发生。该页面不呈现任何内容。

我不确定是否有办法解决这个问题(阻止浏览器在页面重新加载时检查清单)。无论如何,我想知道 - 这是让您的资产缓存并离线使用的唯一方法。数据不是问题;但是没有资产(主要是 JS),事情一动不动。

如果有人能建议/指出我正确的方向/方法,即使在页面重新加载/刷新时也能拥有一个功能齐全的离线应用程序,我会很高兴。

0 投票
2 回答
1230 浏览

php - 保存动态 PHP 页面以供离线查看

我有一个 PHP 页面foo.php,它从 MySQL 数据库中提取记录并以一种很好的方式显示它们。棘手的部分是我在顶部有链接,例如“按名称排序”链接到foo.php?sort=name.

我的一般问题是,如果我有几个 POST 变量,例如sort,可能的页面数量是指数级的(在我的例子中是几百个)。有没有保存所有这些页面以供离线查看的好方法?在没有更好的解决方案的情况下,我想我可以使用wget之类的工具来下载页面的所有可能组合。如果这是解决方案,您能否为这项任务推荐更好的工具?

编辑:回答我为什么需要这个的问题:我有一个用于会议ISPC 20的动态程序,我需要将它分发给 USB 闪存驱动器上的人们。在这种情况下,我不认为提供 WAMP 解决方案是一种选择。

0 投票
1 回答
365 浏览

html - HP TouchPad 是否支持 HTML5 的离线应用(Manifest)

我有一个使用离线支持的 webapp(清单文件)。它可以在 Android、iOS、RIM 以及其他一些设备上正常工作。

但它不适用于触摸板。如果我在没有连接的情况下刷新应用程序,我会收到“无 Internet 连接”错误。有没有人有一个清单文件可以在触摸板上工作?

这是我的代码的一部分:

我的主要 HTML 文件:

清单文件(作为 text/cache-manifest mime 类型发送):CACHE MANIFEST

0 投票
3 回答
3779 浏览

jquery - 可以在缓存清单中包含外部文件吗?

我正在构建一个离线 Web 应用程序并想使用缓存清单。目前我的缓存清单看起来像这样:

是否有任何理由不在缓存清单中包含外部的、CDN 托管的 jQuery、jQuery Mobile 和 Google 地图文件?

我想不出一个,但我想我会问那些比我更聪明的人:)

0 投票
2 回答
589 浏览

html - 由于缓存大小非常有限,我们不应该在 iphone 上使用 HTML5 离线清单吗?

由于缓存大小非常有限,我们不应该在 iphone 上使用 HTML5 离线清单吗?我不完全关于Android浏览器。

我有一个简单的移动网站,有 20-25 页,我也想让它离线工作。这个站点有图像、CSS、Javascrpt、HTML 输出、一个 100kb 的音频文件。所以网站的总大小约为 3mb。

正如我所读到的,iphone safari 只为缓存保留了 5MB 空间,这非常低。甚至我使用清单来缓存一些文件,但是如果用户已经浏览过其他一些使用清单的网站并且它填充了 5MB 缓存,那么浏览器甚至会将我的应用程序的文件缓存吗?

与此http://techblog.viewbook.com/2011/02/mobile-safari-offline-application-cache-limit/相关的一个很好的链接

0 投票
2 回答
782 浏览

jquery - 我是否需要在清单文件 HTML 5 清单文件中添加托管在 CDN 上的文件以进行离线缓存?

我是否需要在清单文件中添加托管在 CDN 上的文件以进行离线缓存?

这是一个示例清单文件

但在我的项目中,我使用了一些托管在 cdn 上的文件

如何在清单文件中包含这些 cdn 文件?

0 投票
4 回答
3699 浏览

ipad - 应用程序缓存:iPad 上的奇怪行为

我正在制作一个网站,用户可以在其中说出他想要缓存的项目。基于此,生成清单文件。通过这样做,用户在离线时仍然可以浏览网站。这在谷歌浏览器中一切正常。但在 iPad 上,它不能正常工作。有时事情会被缓存,有时不会,甚至我访问的页面也不会。

我们整个上午都在用两台 iPad 进行测试,但我们无法在两台 iPad 上得到相同的结果。即使我们完全一样,我们有时也会得到不同的结果。

所以我们做什么:

  • 开启 WiFi
  • 浏览网站
  • 进行一些设置,以便将一些页面/图像/...添加到清单文件中
  • 关闭 WiFi
  • 返回 Safari 刷新/浏览应缓存的页面。

有时在一台 iPad(这是 iPad 1)上它完全可以正常工作,但有时它根本不工作。在另一台 iPad(这是 iPad 2)上,它永远不会完全正常工作。只是一些随机的结果。

当我们完全关闭safari,然后清除缓存,然后执行下载和缓存东西的整个过程时,看起来结果也有所不同......

有人可以帮我解决这个问题吗?此刻真是让人头疼……:(