WordPress中关于jQuery等js库的引用问题,涉及simple-lazyload等插件

先要抱怨下某些做主题、做插件的,做的时候可以稍微标准一点吗?

引入js库时要用 wp_enqueue_script() 函数,主题用插件不用,或者插件用主题不用,这样都会造成引用的js库重复。后果就是可能会导致网页无法正常显示。

多时说的开发者分享开发经验的候,提到最干得干货是:对于是否引入jQuery等js库进行检测,不重复引入。

在开发 simple-lazyload   auto-lazyload-and-auto-highslide   Images Lazyload and Slideshow等插件的时候,关于js的引入,我也有这样的变化过程:

1. 不管外部环境,直接加一个js引用到页面上

2. 检测客户端环境,如果 jQuery没有引入,则加入。

3. 使用 wp_enqueue_script(‘jquery’) 来引入jQuery等。 2方法其实很好,唯一的问题就是,如果页面进过特别的优化,js会放置到代码页最底部,即body闭合之前,而检测代码是必须放在所有js之后的,否则会出现检测完没有jQuery,引入了,到最后又加载一遍的问题。检测代码是必须放在所有js之后这个对于插件、wordpress api来说是没法做到的。wp_enqueue_script的就是为了解决重复引用的问题。当然wp_enqueue_script可以做的更多。如默认文件位置,保证最低版本等。

4. 发现了wp_enqueue_script对于通过静态的方式引入js库表示束手无策。先来个  <script src=….   这样的引用,再来个  wp_enqueue_script(‘jquery’)  这样的引用,出来的页面就带有两个jQuery。

 

通过静态方法引入js库的主题不在少数,怎么办呢,难道要回到方法2去?那样真的不规范。

最后还是呼吁所有的主题作者尽量使用安全的js引入方法: wp_enqueue_script(‘jquery’) 

分享到:

发表评论

昵称

沙发空缺中,还不快抢~