WP_LOCALIZE_SCRIPT和主机/浏览器缓存

时间:2019-08-01 作者:Jess_Pinkman

我正在编写一个定制插件,该插件将具有高级JS脚本,为了预加载相关数据,我正在本地化脚本。

PHP

$post_array = my_function_to_get_my_data();
wp_localize_script(\'registered_script\', \'serverData\', array( \'posts\' => $post_array ) );
JS部分:

jQuery(document).ready( function($){
    $.each( serverData.posts, function( id, content ){
      console.log( content );
    }
});
通过wp\\u localize\\u脚本传递的数据在客户端是否是最新的(这意味着缓存不会成为问题)?

1 个回复
SO网友:Jacob Peattie

传递的数据wp_localize_script() 输出为<script> HTML页面中的标记。所以如果你有这个:

wp_localize_script( \'registered_script\', \'serverData\', array( \'posts\' => $post_array ) );
这将出现在页面上:

<script type="text/javascript">
    /* <![CDATA[ */
    var serverData = { "posts": [] };
    /* ]]> */
</script>
这意味着,如果您的页面HTML使用类似WP Super Cache或WP Rocket的东西进行缓存,那么这些数据也将被缓存。因此,如果您需要数据完全是最新的,那么您应该在脚本中通过AJAX检索新数据。

请记住wp_localize_script() 最初的设计目的是为脚本提供本地化/翻译的字符串,而这些字符串不需要频繁更新。

相关推荐