将数据从PHP传输到Javascript有哪些最佳实践?

时间:2011-02-02 19:39:57

标签: php javascript

我的项目变得越来越JS。问题是我的大部分数据都在服务器端(PHP)。有什么方法可以将这些数据传输到客户端(代码样本用于额外的布朗尼点)?

我正在考虑的一些方法 - 哪一种最好?:

1)使用php直接“回显”到js变量。  2)使用php写入HTML元素,然后使用js从dom中检索。  3)使用ajaxcall

思想?

5 个答案:

答案 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); 
    }
);