我的项目变得越来越JS。问题是我的大部分数据都在服务器端(PHP)。有什么方法可以将这些数据传输到客户端(代码样本用于额外的布朗尼点)?
我正在考虑的一些方法 - 哪一种最好?:
1)使用php直接“回显”到js变量。 2)使用php写入HTML元素,然后使用js从dom中检索。 3)使用ajaxcall
思想?
答案 0 :(得分:4)
所有这些方法都是可行的。如上所述,这实际上取决于用例。
1)使用php直接“回显”js变量。
如果您需要“初始化时间”的某些数据,那么这是必要的。如果您的初始页面显示取决于某个状态变量,则无法绕过此方法。
2)使用php写入HTML元素,然后使用js从dom中检索。
我认为这是一个懒惰的选择。它允许更新数据而无需编写两种不同的方法来检索它。由于jQuery提供.load("file.php div.data")
,您通常可以重用现有的输出模板。
3)使用ajax调用
这可能是查询的最佳选择。特别是如果您需要来自数据库的信息或轮询某些状态,这是首选方式。使用JSON返回数据,但更喜欢GET / POST变量用于客户端 - >服务器通信。
答案 1 :(得分:2)
我喜欢在php中使用json_encode();
的JSON,使用ajax调用来检索它。
答案 2 :(得分:1)
4)使用JSON http://www.php.net/manual/en/function.json-encode.php - 返回的值是JavaScript的关联数组
答案 3 :(得分:1)
我个人使用本机PHP数组并在其上使用json_encode和json_decode来获得一个干净的Javascript可解析数组。您可以在此处查看手册:http://php.net/manual/en/function.json-encode.php
答案 4 :(得分:1)
我发现表现最佳的方式如下。
我对执行某些操作并返回数据的PHP页面进行AJAX调用。一旦PHP拥有它需要返回的所有数据,我就以JSON格式回显数据(作为数组)。
<强> fetchUserInfo.php 强>
die (
json_encode(
array(
"username" => "Dutchie",
"id" => "27"
)
)
);
然后,您可以使用javascript(虽然我建议jQuery用于AJAX浏览器兼容性)将数据提取到json对象中。
<强> JS 强>
$.getJSON(
'fetchUserInfo.php?',
function(jsonObject) {
alert(jsonObject.username);
}
);