我目前有一个这样的设置:
服务端:
-
从MySQL中检索数据
-
通过生成HTML的循环运行数据。例如:
<div>
Item 1:<br>
Color: Red, Amount: 8, Cost: $15 each
Item 2:<br>
[...]
[...]
</div>
Clientside:
用接收到的数据更新div的HTML: $("#details").html(result);
这样做会不会更好:
服务端:
从MySQL中检索数据
通过生成JSON对象的循环运行数据。例如:
{"result":
"0":[{"Color":"Red"},{"Amount":"8"},{"Cost":"15"}],
"1":[...]
[...]
}
Clientside:
解析为HTML并用解析后的HTML更新div。所有交付的数据都将以某种方式被使用,并且最终结果将与服务器端解析的结果完全相同。一旦函数完成运行,JSON对象将被丢弃。
正如评论部分所提到的,这个问题没有正确答案。不管怎么做,你都不会更安全。通过AJAX调用提供HTML将使页面加载速度稍微快一些,因为大部分处理是在服务器端而不是客户端完成的,尽管最终我认为您不会看到任何一种方式的太大区别,但您当然可以尝试一下并找出答案。