jQuery是否进​​行任何初始处理?

spe*_*der 5 javascript jquery

简单的问题.如果在HTML页面中包含jQuery,那么在使用任何jQuery函数之前是否存在任何初始化开销.

Cre*_*esh 12

通过简单地包含jQuery脚本,您确实可以获得一些开销.jQuery在一个立即执行的函数中构建自己.

在1.3.2中,它所做的最大的事情是IE支持:

  • 创建一个临时form元素,其中包含一个input元素,以检查浏览器在查询时是否按名称返回元素getElementById- [ 来源 ]
  • 创建一个临时div的空comment节点,以检查浏览器在执行时是否仅返回元素getElementsByTagName("*")- [ 来源 ]
  • 创建一个临时的锚元素,看看是否getAttribute返回规范化的href属性 - [ 来源 ]
  • div用这个html 创建一个临时文件:

    '   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>'
    
    Run Code Online (Sandbox Code Playgroud)

    并继续从该结构中读出一堆特征.这是为了构建jQuery.support代替弃用而创建的对象jQuery.browser- [ 来源 ]

它还做了一些较小的事情,如:

  • 创造了正则表达式对象的整体重击
  • 解析navigator.userAgent一些不赞成的浏览器嗅探支持
  • 从系统中获取当前日期(+new Date)

请记住,正如其他人所建议的那样,所有这些几乎不会产生明显的延迟.