是否有可能在javascript中离线服务用户创建的内容

Is it possible to serve user created content offline in javascript?

本文关键字:创建 用户 服务 离线 有可能 javascript 是否      更新时间:2023-09-26

我的应用程序为用户创建的电子学习HTML页面包,也称为SCORM包,我正试图使其尽可能快。

在iframes中逐页加载非常慢,因为页面可能包含高分辨率图形、动画、音频、视频等。

不幸的是,预加载这些页面是相当困难的,因为它们通常对onLoad()事件做出反应,以启动动画和交互。

如果不使用applet或扩展,是否可以下载用户包并将其"在浏览器中"提供给应用程序?

随着基于Backbone.JS、Angular、Ember等构建的胖客户端的出现,这是一个很常见的任务。客户端从服务器请求数据(通常是JSON)、媒体等,而不是预渲染的HTML,并在客户端进行渲染和资源管理。如果你想用这种方式来支持灵活的离线模式,你通常需要在你的应用缓存清单中提供一组通用的加载器和工具,以便在页面加载时加载更具体的资源(用户特定的、课程特定的等)。

你的用户第一次打开你的应用程序,它应该在在线模式,你的应用程序将需要请求特定的资源,它需要离线工作,并将它们存储在客户端存储(localStorage, indexedDB或什么它试图取代- WebSQL,和文件系统。web上有许多关于如何使用这些api的资源。这一步也可以是增量的,而不是大量下载兆字节的数据。

下次你的用户打开你的页面时,你的应用程序可以尝试在调用服务器之前从客户端存储加载所需的所有资源。它只需要在缺少某些资源时调用服务器,或者需要获得资源的更新版本时调用服务器,当然,如果需要向服务器写入数据时调用服务器。如果您在第一次将所需的所有资源加载到客户端存储中,那么它可以在离线模式下正常工作。

如果你的用户使用的是现代浏览器,你可以使用HTML5缓存清单。

创建清单文件将使浏览器下载并存储本地站点,然后用户甚至可以离线访问

http://en.wikipedia.org/wiki/Cache_manifest_in_HTML5