【问题标题】:JSON handling clientside? [closed]JSON处理客户端? [关闭]
【发布时间】:2013-12-25 14:19:12
【问题描述】:

是否可以在不通过 h​​ttp:// 或 https:// 提供服务的情况下处理来自 JSON 文件的数据?基本上就像您在 HTML 页面中引用 JS 文件或 CSS 文件一样?

【问题讨论】:

  • JS 和 CSS 文件也通过 http 处理。你想达到什么目的。请更准确。
  • 我的最终目标是从一个文件夹运行它,允许我通过 file:// 访问它,而不是通过 http 协议提供它。 @MarkusKottländer
  • 要开发独立的网络应用程序,请查看jetty - 一个可以包含在一个可执行 jar 中的独立网络服务器。在每台启用 java 的机器上双击它并开始浏览以localhost:8080 为例

标签: javascript html json


【解决方案1】:

正如 jebbie 的回答所指出的,如果您希望在浏览器中将您的应用程序作为 web 应用程序运行,访问本地文件(JSON 无关紧要,任何数据文件都有相同的限制)的唯一方法是通过 file:// 协议或使用HTML5 的Local Storage。这强加了它自己的约束。


然而,一个更简单更好的解决方案[1] 是安装一个简单的本地网络服务器(哎呀,安装 Apache 远非最简单的需要不到 30 分钟)。在某些网络服务器中,整个安装意味着下载、编辑 1 个配置文件并运行可执行文件。一个典型的推荐是Mongoose,更多在这里:Best lightweight web server (only static content) for windows

完成此操作后,您可以将数据文件(包括 JSON)放入 Web 文档目录并像访问任何其他 Web 资源一样访问(最终来自 http://localhost:80/ 或您设置的任何本地 http 端口) .

[1] Web 服务器更好,因为 (1) 您学习的 Web 开发技能可以转移到在 Web 服务器上运行的真实 Web 应用程序中;(2) 因为如果您的迷你应用程序确实有用,您可以重用部分/全部在以后的项目中

【讨论】:

  • 是的,别担心,我只是希望有可能,哦,好吧,也许有一天。
  • 当我阅读 mongoose 时我想到了什么 - mongodb 一个非常好的 no-sql 数据库,它直接存储 json 文档,速度极快,可扩展,而且安装速度也非常快.. 你不需要需要与 ERM 和表定义作斗争,您只需开始编码并即时创建数据库和表(集合):)
  • @jebbie - 有些项目的 DB 太过分了 :)
  • @jebbie 我在看 Couch DB,这似乎也很有希望。我肯定也会研究 mongo,谢谢 =)
  • 仅供参考,FireFox 的内部数据存储为简单的 SQLite DB :)
【解决方案2】:

基本上 - 不。首先,当您引用 JS 或 CSS 文件时,它始终通过 http:// 或 https:// 提供服务,浏览器将加载您使用 http-protocol 提供的所有内容,这是他唯一知道的。如果您不相信我,请查看开发人员工具的网络选项卡,您会看到通过网络加载的每个文件。

加载本地文件的唯一其他方法是 file:// 协议,不推荐使用该协议,因为您的浏览器处于沙盒模式,并非一切皆有可能。

但是在本地存储 JSON 数据.. 这是一种新的东西,可以通过 HTML5 的 localStorage 实现;-)

【讨论】:

  • 是的,这是一个通过 file:// 协议的简单小项目。即使我确实将我的 JSON 存储在本地,我将如何访问它?
  • localStorage['myData'] = JSON.stringify(myHugeJsonObject); var myHugeJson = JSON.parse(localStorage['myData'])
  • 问题是,您不能在访问域之前将文件放在本地存储中。它就像一个 cookie.. 您仍然必须从提供的页面/域开始一个网络服务器..然后你可以从那个网站的 js-code 开始,将内容保存到 localStorage 并稍后再次访问,数据存储在你的硬盘上。
猜你喜欢
  • 1970-01-01
  • 2017-05-18
  • 2014-04-15
  • 1970-01-01
  • 1970-01-01
  • 2015-09-14
  • 1970-01-01
  • 2021-12-19
  • 1970-01-01
相关资源
最近更新 更多