Javascript 如何在脱机web应用程序中本地访问HTML文件

Javascript 如何在脱机web应用程序中本地访问HTML文件,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我正在构建一个基于移动网络的游戏。我想使用单页设计,我希望它能够脱机运行。我想设计和存储不同的HTML页面,作为文件夹中的文件使用,并在需要时将它们加载到我的div中。问题是我找不到使用web技术加载本地文件的方法 通常的方法是将文件托管在服务器上,并通过AJAX等进行获取,但我希望绕过获取时间,允许应用程序脱机运行 现在我正在做的是创建我的html页面,将它们作为字符串存储在JS文件中并使用它,但我希望有更好的解决方案 理想情况下,我想要类似$.mydiv.load../html/login.

我正在构建一个基于移动网络的游戏。我想使用单页设计,我希望它能够脱机运行。我想设计和存储不同的HTML页面,作为文件夹中的文件使用,并在需要时将它们加载到我的div中。问题是我找不到使用web技术加载本地文件的方法

通常的方法是将文件托管在服务器上,并通过AJAX等进行获取,但我希望绕过获取时间,允许应用程序脱机运行

现在我正在做的是创建我的html页面,将它们作为字符串存储在JS文件中并使用它,但我希望有更好的解决方案

理想情况下,我想要类似$.mydiv.load../html/login.html的东西。然而,由于load使用AJAX,我认为这不起作用


编辑:我计划使用phone gap build来打包我的应用程序。

将您的所有数据作为不可见元素保存在单个网页中,然后根据需要显示它们。单页设计之所以被称为单页设计是有原因的——你只能得到一页。但是该页面可以任意大,您可以动态修改它,并且可以根据需要显示和隐藏部分。您还可以使用任意一个来模拟您的.load,就像从服务器加载一样


编辑:您正在构建一个PhoneGap应用程序,这一事实从一开始就完全改变了事情:PhoneGap就像一个服务器,允许您构建一个多页面应用程序。因此,包括.load在内的所有内容。如果没有web服务器,您无法测试应用程序,因为仅从硬盘打开文件(即使用file:protocol)是不允许的,因此测试时您必须移动到web服务器。但是,您问题中的单页设计有点误导。

我不知道我的建议是否相关,但如果您使用,您可以使用标准的web技术构建一个独立的移动应用程序。也许你可以看看…

有一个简单的方法,也有一个困难的方法…你正在走一条艰难的道路

我构建了一个单页html5移动应用程序,通过javascript控制信用卡阅读器。读卡器确实需要互联网连接。其他部分很容易在脱机模式下工作

实现这一点的简单方法是借助一个好的移动框架。特别是,您需要一个框架,使其易于脱机工作

由于有很多框架,请选择一个具有脱机组件的框架。我使用的框架是Dhtmlx-Touch。选择一个100%使用json字符串而不是divs创建页面的框架。这样就很容易了,您可以将页面作为json对象存储在浏览器的本地存储中

所以你有一个html5页面…一个好的javascript框架…和本地存储

Dhtmlx Touch在框架中内置了一个离线组件:


有了正确的工具,一切都很简单……而且它可以很好地与PhoneGap或本机Webview配合使用。

是我开始使用的一个库,它可以完美地处理这个问题。它允许您分离HTML代码,并在需要时包含它

我隐藏的这些元素不都会占用资源吗?我的印象是,它们已加载但不可见,因此,如果有足够的数据,将导致问题。如果我错了,请纠正我。你没有错,他们确实需要资源;但是,一个十个或一百个小部件的HTML值并不是很大。如果您需要的是数据,而不是简单的UI,那么您应该使用一个数据库—请参阅HTML5存储中的键/值存储,如果您需要更多,请参阅WebSQL—但后者目前不适用于IE和Firefox。除非你的数据真的很大,否则还是把它放在页面上。请记住,这个应用程序是为移动设备、手机和平板电脑设计的,所以性能比桌面上更重要。现在,我相信这个解决方案在一个页面中的所有内容都是我将使用的,并且希望在它成为瓶颈之前找到一个替代方案。谢谢你是说我可以用phonegap加载本地文件?这就是我要做的!但是,它不能解决本地文件问题。我可以为每个操作系统构建插件,将JS函数连接到Objective-C或Java,并使用本地语言进行文件I/o。似乎不值得考虑你正在使用PhoneGap!?!在我的答案中添加了更多信息。