我需要发送一些数据到一个网页,最好是以json格式,我想知道哪种方法被认为是最好的,以及为什么。总的来说,你与他们有什么好的或坏的经历和惊喜。
<script>var myJson = <? echo json_encode($myVar); ?>;</script>优点: json直接在javascript中,如果它将被使用。
不便: html/dom中间的<script>不好(js属于.js文件)。
<div data-myJson='<? echo json_encode($myVar); ?>'>优点: html5数据很容易使用。
不方便:多玛中的一堆数据,它看起来并不优雅:在我的例子中,我可以忽略“旧”browsers.
优点:在这种情况下,json甚至不需要发送,因为它已经可用(没有页面更改)。
不方便:实际上不是一个选项,因为我需要重写发送完整json的完整website.
优点:数据移动较少
不方便:数据/会话夫妇需要被跟踪,我喜欢我的会话保持干净和整洁。(即使用户只是在流完成之前关闭页面)(这不会关闭session).
优势:先生..。反向邪恶是一件好事吗?不方便:就像会话变量一样,但不在笼中。
优点:概念上有点优雅。
不方便:工作量很大,因为ajax指令必须添加到js文件中,并且会话必须管理。(并被净化。如果页面加载没有完成,json将一直保留到我清理它或会话结束为止)。加上html头意味着更多的带宽,我们必须等待成功使用object.
。
编辑:由于似乎有点混乱,选项3 "ajax一切“我指的是一个页面加载和ajax加载的所有内容,即使您通过菜单、指向其他页面的链接、表单提交等等。我认为是一种更传统的导航(服务器作为新的a页发送的页面),其中一个页面执行ajax请求在服务器上检索某些值(这里是我的json对象),作为第4点“会话”,因为在页面被发送以后被ajax请求获取之后,主数据必须留在服务器上。我确实为此添加了备选方案6。
发布于 2011-11-16 16:54:18
我毫不犹豫地推荐#1。您希望在javascript中使用您的数据,对吗?1是确保数据在页面加载时作为一个普通的javascript对象存在的最简单和最直接的方法。我一直用这种方式将数据从服务器端传输到浏览器端,它工作得很漂亮。
您可以通过在ajax调用中加载数据,从而在数据和UI之间创建更好的分离,但这是一个额外的http请求,它将减缓页面加载速度。
发布于 2016-05-03 01:55:28
这个问题被问了几年了,但是对于那些在这里发现自己很好奇的人,我已经对选项1做了很长一段时间了。此外,耐克加也这样做。当页面加载时,Nike设置window.np = {}
我从来没有真正找到过我喜欢的会议,但我试过:
window.data
window.app.data (灵感来源于Symfony,字面上使用属性app)
window.[app_name].data (受耐克+的启发)
window.initData (受Google+启发)
在我的例子中,当主主干应用程序加载时,我用主干模型/集合覆盖这些JS对象。
https://stackoverflow.com/questions/8155193
复制相似问题