我试图保持我的html干净,因此需要通过所有JavaScript / jquery逻辑发生的app.js文件使用库/插件。我正在使用FastClick库来忽略300ms的抽头延迟并以这种方式对其进行初始化。

jQuery(document).ready(function ($) {
    'use strict';

    /* Load and initialize FastClick, ommits 300ms tap delay */
    $.getScript('lib/fastclick.js', function () {
        new FastClick(document.body);
    }); /* END FastClick */

}); /* END jQuery */


这在语义上有意义吗,而不是在html页面中添加fastclick.js文件,这样做是否会更加有害?

最佳答案

fastclick docs的角度来看,它具有语义意义,并​​且看起来没有害处。


  在JavaScript捆绑包中包含fastclick.js或将其添加到HTML页面中...


他们说将它作为串联文件或独立文件包含是安全的。您可以随意包含FastClick源代码,但您认为合适。

实际上,他们的文档使FastClick的初始化变得复杂。 document.documentElement属性在JavaScript开始执行时就可用,它表示<html>元素。可以将其用作FastClick的根元素,而无需DOMContentLoaded或domready事件处理程序:

new FastClick(document.documentElement);


无需事件处理程序。现在,您可以根据需要在页面加载时以及在解析完整的HTML文档之前响应点击。

编辑:@jungy在他的评论中提出了一个观点:


  ...您正在等DOM准备好之后再下载库。


完整的代码示例:

jQuery.getScript("lib/fastclick.js", function() {
    new FastClick(document.documentElement);
});

09-12 01:05