使用离线功能构建ASP.Net Web应用程序

don*_*sci 7 asp.net webforms web-applications iphone-standalone-web-app

我正在构建一个asp.net(3.5)网络应用程序,并想知道你是否知道我可以做任何方式,以便有一些离线功能.

这是必要的,因为人们将能够在他们的设备上"安装"web应用程序(例如,使用iPhone上的"添加到主屏幕"功能),然后在他们离线时使用该应用程序; 用法只会受到限制(此时也不需要服务器调用).

这可以用.aspx页面完成吗?

编辑 - .manifest补充说:

CACHE MANIFEST
index.aspx

/logo.png
/main.css
/main.js
Run Code Online (Sandbox Code Playgroud)

编辑2号 -

我们让它以一种时尚的方式离线工作; 它在safari中有效,但我们不想在safari中使用它,我们希望它作为一个独立的应用程序.当我们尝试像这样运行它时,我们得到'无法连接到服务器错误'.这是否可以使用.aspx页面?

编辑3号 -

我们已经使用.html页面工作但仍然没有使用.aspx

编辑4-

它现在正在工作,虽然我们不确定为什么!我们上周将index.aspx添加到了cache.manifest的'network'部分(上周没有工作!),这可能有所帮助,但一旦我知道我会更新你实际发生的事情!

感谢大家的帮助!

Min*_*uca 12

对于使用ASP.NET的脱机HTML5应用程序,请参阅此链接和此链接.

对于离线功能,有一些替代方案:

01 - 如果您需要在离线应用程序中存储少量数据,并且安全性不是一个大问题,您可以使用HTML5 Web存储(链接,链接,链接,链接,链接,并查看CanIUse以了解浏览器版本支持).

主要缺点是它缺乏安全性,基于键值(没有复杂的结构),并且存储大小存在很大限制(大多数浏览器为5MB).


02 - 如果您需要更大量的数据,可以查看IndexDB(链接,链接,链接CanIUse)或Web Sql(链接,链接,链接CanIUse以获得浏览器支持).

Web SQL的主要缺点是Firefox和IE不支持它.此外,它被W3C弃用.

IndexDB很好(链接),但似乎ios仍然不支持它(参见canIUse).

对于方法1和方法2,您可以在ASP.NET应用程序(链接)中创建响应式设计或专用移动Web站点.


03 - (更大的灵活性需要更多努力)在ASP.NET应用程序中实现Web服务,并应用偶尔连接应用程序概念的移动本机应用程序(更多信息:链接,链接)

  • ASP.NET Web应用程序 =>对于Web应用程序,使用与脱机功能相关的服务公开Web Service.

  • 移动应用程序 =>使用应用程序的数据库实现本机移动应用程序(例如,为Android和iphone开发应用程序).然后,您将在移动应用程序中创建脱机功能,该功能将使用其自己的数据库来读取和写入必须可脱机使用的数据(本地).

然后,您可以在移动应用程序中实现静默同步机制,该机制依赖于互联网(例如,循环线程),该机制将通过Web服务访问ASP.NET应用程序来搜索更新.此同步机制将发送本地存储的数据,并从Web Service恢复可用于脱机功能的数据.


希望能帮助到你.

  • 感谢您的答复。我们使用本地存储来存储用户需要的任何数据,但我们遇到的问题是,当我们将网络应用程序安装到设备上,然后将设备置于飞行模式时,我们无法启动该应用程序。我们尝试使用 .html 页面作为默认页面,效果很好,但是使用 .aspx 页面时,它会遇到所描述的错误。 (2认同)

juh*_*n_h 0

是的,这可以通过 ASP.NET 来完成,因为 ASP.NET 在客户端浏览器中呈现为 HTML 页面,而脱机功能是纯 JavaScript/Html 功能。是 Stephen Walther 的一篇文章,展示了一种方法。