在页面上存储Ajax请求数据的最佳方法

时间:2013-10-23 21:40:42

标签: javascript php jquery ajax

我生成了一个页面,其中包含由php生成的数据数组。我需要将一些数据用于ajax请求。

我只是想知道在页面上存储数据的最佳方法是什么,它不敏感,页面不涉及表单。目前我一直在隐藏的div中使用数据属性,但看起来有点像梅西?

例如

<div id="data" class="hidden" data-question="<?= $blah ?>" data-another="<?= $blahblah ?>"></div>

2 个答案:

答案 0 :(得分:1)

虽然没有“最佳”方式,但我建议使用JSON - 一种存储和交换数据的格式,并且看起来很适合您的情况。

而不是将任意数据存储在html元素的数据属性中,如下所示:

<div data-name="bob" data-age="27" data-gender="male" />

Json允许你像这样存储它们:

people = {
    "bob" : {"age":"27", "gender":"male"},
    "alice" {"age":"31", "gender":"female"}
}

您可以通过几乎任何语言的本机或库调用以编程方式访问此数据,尤其是PHP和JavaScript。

在JavaScript中,JSON的访问方式如下:

BobsAge = people['bob'].age;

此格式允许进行其他编程访问,例如循环对象或键,这可能难以对html元素的数据属性执行。

在您的情况下,可以像这样生成JSON(尽管有更好的方法):

<script>
var data = {
<? foreach ($data as $d){ ?>
    { 
        "question" : "<? $d['question'] ?>",
        "answer" : "<? $d['answer'] ?>" 
    },
<?}?>
};
</script>

答案 1 :(得分:0)

有三种可能性:

  • 属性:这是您的方法

    这可能是简单字符串的最佳选择,例如:参数和描述性数据 - 例如data-popover包含弹出内容的元素。许多JS插件都是以这种方式构建的。

  • <script>代码中的PHP回显

    在同一个文件中使用<script>标记的成本没有“额外标记”(可能还有全局JS变量的使用)。我不建议这样做。

  • 额外的AJAX调用使用PHP中的数据获取JSON

    最适合更复杂的数据结构,例如嵌套数组或对象。