【问题标题】:best way to store php data on a page for use with javascript/jquery?在页面上存储 php 数据以供 javascript/jquery 使用的最佳方式?
【发布时间】:2010-03-16 20:37:33
【问题描述】:

好的,所以我试图找出在我的页面上存储数据而不减慢页面加载速度的最快方法:

  • 我需要将信息存储在 页面供 jquery 稍后使用。
  • 我的页面是一个活动页面,我想 将数据附加到每个事件锚点。
  • 有 100 多个事件可以附加数据。

事件锚点是使用 php 循环创建的, 所以我可以使用任一方法在此循环中创建数据元素

  1. 使用非语义标签,即rel="some_data"
  2. 为循环的每次迭代创建一个 jquery.data()

或者我可以再次单独运行循环,这次在带有 jquery.data() 的脚本标签内;

非常感谢您对此的任何想法!

【问题讨论】:

  • 我怀疑您一次需要所有 100 个事件。为什么不使用 jquery 只请求必要的请求?

标签: php javascript jquery


【解决方案1】:

一种可能性是在服务器端生成一个包含所有事件的 Javascript 数组或对象,并将其作为 Javascript 变量注入到页面中。

基本上:

  • 在 PHP 端:
    • 构建事件数组
    • 将其转换为 Javascript,使用 json_encode
    • 将其注入 HTML 页面。
  • 然后,在 JS 方面:
    • 只需使用该 Javascript 变量即可。

该解决方案非常棒,它适用于几乎所有可能类型的数据,速度非常快,而且很容易开发。


生成的 HTML+JS 代码如下所示:

<script type="text/javascript">
    var myArrayOfEvents = [ ... ];
</script>

它可以用一些这样的 PHP 代码生成:

<script type="text/javascript">
    var myArrayOfEvents = <?php echo json_encode($myEvents); ?>;
</script>


当然,这取决于您:

  • 为您的活动定义所需的结构
  • 用 PHP 构建它
  • 在 Javascript 中使用它

【讨论】:

  • 嘿,伙计,这听起来不错 - 总比在脚本标签中回显更有效吧?
  • json_encode 相当快;这避免了任何额外的循环,或对某些函数的多次调用来处理数据——所以它必须非常有效。
猜你喜欢
  • 1970-01-01
  • 2014-06-20
  • 2013-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多