jQuery and Chrome Extensions
jQuery and Chrome Extensions
在Chrome扩展中使用jQuery作为JavaScript库是否明智?jQuery和其他DOM库旨在隐藏浏览器之间的差异,因为我只针对Chrome,我应该使用它吗?
没有理由不使用jQuery在您的扩展页面之一(背景,弹出,选项等)。您应该始终使用本地jQuery副本,而不是通过http加载远程托管的jQuery副本。
如果可能的话,我建议不要将jQuery作为内容脚本注入。如果你所需要的只是一些简单的选择器或事件监听器,那么在每次页面访问时注入大约100kb的js代码就有点多余了。我用它为我的Chrome扩展,我认为它是非常聪明的。jQuery不仅仅是隐藏差异。它有很多特性,可以让您更快、更健壮地编写代码。有大量的扩展允许您扩展脚本。我认为如果不使用它会伤害到你自己!
除了更快地编码和"不重新发明轮子(不必要的)"-可能会有一个时候,当你需要工作的东西除了Chrome扩展。
jQuery使您更容易在其他平台或不同情况下重用这些工作。
最后,通过使用标准库,其他人将能够更容易地帮助、改进或完全信任代码。(它不会只属于你,永远,如果它是好的。)
不,你不应该使用jQuery Chrome扩展。
jQuery是相当大的,它的绝大部分是支持其他浏览器,一些你只是不需要关心的扩展。
例如,你根本不需要Sizzle引擎(使用document.querySelector
),尽管它在IE6-8中非常有价值。你不需要标准化的事件处理程序,因为你根本不支持IE或Opera(使用element.addEventListener
)。当Chrome原生支持Promise时,你不需要jQuery的延迟实现。当你有fetch
时,你不需要$.ajax
。还有很多。
此外,jQuery不支持很多现代特性,例如,你不能使用被动事件处理程序或异步加载脚本(它甚至不支持defer
)。
当前选择的答案也指出:jQuery的注入成本很高。用最少的代码优化到你真正需要的东西是值得的。
作为任何工具箱扩展(jQuery, Underscore等)的一般规则,总是在没有它们的情况下开始,只有在您发现需要它们时才将它们引入。如果你发现你需要一个框架,考虑更现代的利用新功能的框架(你可以依靠Chrome),而不是那些旨在标准化浏览器之间代码的框架。仔细考虑一下你需要从一个框架中得到什么——如果只是你知道并且喜欢jQuery,那么很好(如果你/你的团队学习新东西的成本很高,熟悉可以是一个理由),但是你应该意识到在这个决定中相关的注入和执行成本。
jQuery是一个具有广泛支持的非常好的工具包,它只是不是适合 chrome扩展的工具。
- Chrome WebKitGetUserMedia
- JQueryhide()不适用于Mozzilla,但适用于Chrome
- 在chrome.tabs.onCreated之后加载HTML页面
- chrome扩展中的navigator.geolocation.getCurrentPosition
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- chrome扩展更改主机/域警告
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 如何在chrome扩展中重定向到html页面
- Chrome Extensions and Cookies
- chrome.extensions对象不可用
- PayPal捐赠按钮在 chrome://extensions/ 中不起作用(选项V2)
- 如何在Google Chrome Extensions中使用jQuery ajax
- 关于在 Chrome 中调用 Chrome API 或 Chrome Extensions with Javascrip
- Chrome Extensions - Javascript
- 如何在Google Chrome Extensions中加载jQuery
- 中的访问扩展chrome://extensions页
- CMD+R不再工作在chrome://extensions/
- Chrome vs. Firefox Extensions
- jQuery and Chrome Extensions