不能在wp_enqueue_script的手动模式下使用Cloudflare的Rocket Loader

时间:2012-02-28 18:25:14

标签: javascript wordpress wordpress-plugin cloudflare

我的wordpress网站上有几个插件依赖于wp_enqueue_script函数。最近我有一个使用Cloudflare的客户想要实现Rocket Loader,这是一个自动的javascript异步加载器。问题是几个脚本不能正常使用它,这就是为什么我必须禁止它们自动异步加载。

根据Rocket Loader wiki,我需要将data-cfasync =“false”属性插入到标记中,这对于wp_enqueue_script函数似乎是不可能的。

还有其他方法来定义这些属性吗?如果没有,是否有另一种方法可以防止Rocket Loader异步加载这些特定的脚本?

2 个答案:

答案 0 :(得分:2)

我是维护Rocket Loader的工程师。遗憾的是,如果没有直接访问脚本标记的HTML,目前无法为单个标记手动禁用Rocket Loader。

一个可能的解决方案是,您可以使用我们的页面规则功能在与基本模式匹配的整个页面上有选择地禁用Rocket Loader。如果这听起来像是适合您的解决方案,请登录您的CloudFlare帐户并查看“页面规则”。

这个问题确实给了我一个很好的想法:我们可以提供一个WordPress插件,公开一个支持CloudFlare Rocket Loader的wp_enqueue_script版本。如果这是WordPress开发人员向页面添加脚本的首选方式,那么对于CloudFlare用户来说,这似乎是一个方便的插件。

最后,如果您对此感到满意,了解您知道通过Rocket Loader运行时出现问题的任何特定脚本会很有用。我们总是试图让它更好,更兼容JavaScript,所以如果你能在wco [at] cloudflare [dot] com给我发电子邮件,我真的很感激!

答案 1 :(得分:1)

我实际上在为CloudFlare工作。此选项也适用于Rocket Loader ignore certain scripts处于自动模式。