仅仅为了简洁的代码而编写jQuery插件是个好主意吗?
Is it a good idea to write jQuery plugins just for the sake of neat code?
例如,如果你写一个插件,你可以这样做$('#myDiv').doAction()
而不是doAction($('#myDiv'))
。你必须承认,第一个看起来更直观。这种方法是否有任何明显的缺点,比如性能下降?
您不会因此看到任何明显的性能影响,但是有一个潜在的缺点:代码的名称空间非常有价值,并且使其更易于维护(您可能知道)。把所有的东西都投入到jQuery.fn
中可能不是最好的方法。
就我个人而言,我不喜欢用非常具体的东西扩展jQuery(比如应用程序特定的逻辑或其他东西),但全心全意地推荐它用于一般的dom级别的东西(.hasAttr()
和.scrollHeight()
是我经常使用的两个)。原因是有更好的地方放置特定于应用程序的逻辑(例如,在负责应用程序该区域的模块中)。
一个简单的启发:如果我把它作为一个公共扩展,它会对其他人有用吗?或者这只与这个特定的项目有关?
也就是说,在代码中这样做没有具体的问题。这更多的是一个语义问题:这是最好的地方吗?
编写一个jQuery插件,这样你就不需要一遍又一遍地重复这个。
这实际上是最小的性能问题,请注意这是在客户端,它不归因于您的服务器资源。
选择一种方法并不会影响性能。这更多的是一个问题,你需要它作为一个jquery插件吗?如果它是一个实用程序函数,并且不需要对jquery对象进行操作,则创建常规函数。如果是,那么它应该是一个插件(不需要传入jquery对象作为参数,你可以链接)
您似乎正在使用jQuery作为框架。它不是一个。
请使用客户端MVC风格的库,如backbone/knockout/sammy/eyeballs来分离关注点和结构
请使用像curl/requirements这样的AMD加载器来模块化你的代码。
- 将脚本缓存到本地存储的basket.js概念仍然是一个好主意吗
- 使用每500ms运行一次的jquery函数是个好主意吗
- 在debounce函数中使用requestAnimationFrame是个好主意吗
- 通过进程使用 NodeJS 全局事件是个好主意吗?
- 将我所有的.js分组到一个文件中-好主意
- 与AMD共享库是个好主意吗
- 模块是打字的好主意吗?或者它们只是增加了复杂性
- 在Coffeescription中使用一个自调用函数来隐藏其余代码中的函数和变量,这是一个好主意吗
- 开发两个单独的节点应用程序来提供 Web 服务和使用 Web 服务以在浏览器上呈现它是一个好主意吗?
- Meteor:为集合服务器端创建筛选器,并将其存储在本地集合中.好主意
- 修改 yii.activeForm 是个好主意吗.js如果不是,另一种方法是什么
- Javascript中的异步类是一个好主意吗?
- 将 with-语句与上下文一起使用是个好主意吗?
- 在 JavaScript 中将小数字合并为一个是个好主意吗?(作为存储优化解决方案)
- 在第一次触摸启动事件时禁用所有点击事件是个好主意吗?
- 我可以定义一个函数来处理在 2 个输入标签上定义的“更改键控”事件吗?这是个好主意吗
- 使用经典继承,在 JavaScript 中使用“类级”/成员变量是一个好主意还是坏主意
- Cron Job是执行此任务的好主意吗?PHP
- 在JS模板中添加逻辑?好主意还是不行
- 仅仅为了简洁的代码而编写jQuery插件是个好主意吗?