如何使网站离线可用

7

我希望即使用户清除缓存和cookie,我的网站也能离线使用。这是否可能?另外,我正在处理数据库。是否可以离线处理数据库?


我正在考虑使用Web SQL数据库,但它需要SQLite的支持。在服务器端使用MySQL,在客户端使用SQLite是否可行? - rdp
6个回答

11
  1. 用户可以使用Chrome(右键另存为)存储一个本地的单个网页,并且它将存储所有资源(图像,css,js),以便完全离线加载该页面。其他浏览器也会有类似的选项。

  2. 您可以使用wget镜像整个网站以供离线浏览。

wget --mirror --convert-links --html-extension -p http://www.example.com/
  • 当然,这两个选项都无法处理您网站/页面中的数据库驱动元素。

  • 如果您想离线模拟数据库或页面的动态元素,则Google Gears可能是最接近您所寻找的,但我认为它在去年被Google弃用了。


  • Google Gears已不再提供,但仍然可以通过使用Service Workers使网站离线可用。点击此处了解更多 - Anderson Green

    7

    你的第二个链接挂了。 - Ulysse BN

    2

    摘要: 点我,我是现在浏览器支持的新技术!

    我点击了其他答案中提到的一些链接,但所有提到的工具都已被弃用或将/应该很快被弃用。

    后来当我没有连接到互联网时,我打开了由Google运营的一个网站(要么是Google文档,要么是YouTube,我很遗憾忘记了),并查看了页面源代码,因为我很好奇想要看看其他答案的实际情况。我在清单文件中发现了一个叫做ORIGIN-TRIAL的东西。 经过快速的谷歌搜索,我找到了这个,它带我去了这里,然后不知怎么地带我到了最后一个链接:

    https://developers.google.com/web/fundamentals/primers/service-workers

    总之,现在使用Service Workers。如果你想知道它是否适用于所有浏览器,不用担心。所有流行的浏览器都应该支持它,如此处所示。


    0
    不,如果您的数据库存储在线上,那么您需要一个互联网连接,以便PHP/ASP(无论您使用什么来处理数据库)能够连接/通信到数据库。

    (我知道这是一个旧答案,但我给其他用户留个评论...) 即使您的Web应用程序/主页是使用php或asp等服务器端技术创建的,仍然可以使用其他答案中的一些技术来拥有离线模型,特别是使用html5。 但是没有“直接”的(不需要工作)方法来做到这一点。 (数据库部分需要一些同步方法,以便在设备再次联机时进行同步,因此这可能是一个棘手的事情,如果没有Internet连接,则当然不能进行实时更新!) - Alf Nielsen

    0

    如果要本地存储数据并离线访问,请查看GearsWeb Storage

    主要问题是您想为您的网站提供多少功能。它总是需要在客户端(用户)上进行一些工作,以“存储”即保存您的网站离线。您将不得不将所有功能存储在用户存储的一个页面中(可以是Flash电影或一些Javascript代码)。


    0

    您可以使用简单的命令将整个网站下载到本地,并确保所有链接正常工作。

    wget -rk 'http://www.website.com'
    

    对于 https url,您需要添加以下属性:

    wget -rk --no-check-certificate 'https://www.website.com'
    

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接