我使用了太多的jQuery吗?我什么时候越线?

And*_*rea 25 javascript css jquery

最近我发现自己经常使用jQuery和JavaScript,经常做我在使用CSS之前做的事情.

例如,我使用JavaScript/jQuery替换表行颜色或创建按钮和链接悬停效果.这可以接受吗?或者我应该继续使用CSS来做这些事情吗?

所以真正的问题是:当我使用太多jQuery时?当我越线时,我怎么能理解?

And*_*y E 87

如果你使用jQuery来做一些可以在没有jQuery的情况下轻松完成的事情,你就越过了界限.jQuery的目的是让生活更轻松,但不应以牺牲兼容性或可用性为代价.

jQuery肯定不应该用作CSS的替代品 - 想想禁用JavaScript的用户.

我知道这个图像被过度使用了,但有人不得不把它扔进这里:

Image Credit - bobince.

  • 哈哈哈,这是我第一次看到那张照片.它是纯金 (31认同)
  • -1用于大胆嘲笑强大的jQuery! (6认同)
  • 对先前评论的更正,我没有注意到右边的"相关"部分是纯金以及"我的腿在哪里?" 是新的赢家. (5认同)
  • @sibidiba - 在jQuery的(或任何框架的)防守,如果浏览器没有实现这种不同的方式开始的事情,他们不会被创建......或至少不会看到他们目前做的用法.是的,我在看*你*Internet Explorer团队. (5认同)

Nic*_*ver 7

我不认为这里有"线",我认为有一些简单的事情和一些灰色区域,你必须平衡你想要的.先进的功能,性能,兼容性,想到这些是一个三角形,这是很难做到的所有3 尽可能地在同一时间.

如果CSS可以做到,当然可以在CSS中进行.如果不能在CSS中使用jQuery,但不使用不需要开销的jQuery,例如$(this).attr("id")通常情况下this.id,很多东西都可以严格地在DOM上使用,并且仍然以跨浏览器的方式.

你什么时候用它太多了?如果不需要,有时你需要jQuery用于跨浏览器的CCS3选择器,有时候你使用已经可用的CSS选择器将它放在样式表中.还有其他一百个例子,但是如果没有它就可以通过跨浏览器的方式获得,那么就没有必要,像褪色这样的事情并不是一件容易的事情.如果你需要包含jQuery,你就没有理由不使用.fadeIn()(代码被包含在内,为什么要重复它?)

JavaScript与无JavaScript

正如在评论中所说,你的网站应该提供所有基本功能而不需要javascript,这通常不是问题,例如捕获点击并通过AJAX加载内容...如果你没有捕获它,他们会进行整页重新加载,这是标准行为的简单回退.但是,所有的"花里胡哨"?这是肯定的,但我不认为你应该向后弯腰以提供没有JavaScript的所有功能.用户将其关闭,他们没有得到花哨的东西,这很好......以SO为例,禁用javascript禁用了许多非必要功能,你可以浏览一下,但是评论,投票,主要是没有JavaScript的动作不一定可用.


Arn*_*j65 6

如果您在浏览器上关闭了java脚本并且您的站点/应用程序没有运行或看起来没有功能,那么您就遇到了问题.

JS很棒,但它应该永远不会阻止用户使用您构建的内容,如果它被禁用.

  • @Peter - 我*强烈*不同意"完全",基本功能**是的,绝对**...铃声和口哨声?**没有**.JavaScript是今天使用的每个浏览器的**标准部分**(具有非常*,**非常小的1%异常部分),为什么我必须完全忽略它在那里?如果因为你不喜欢它而拔掉你的鼠标,那很好,没有它让应用程序工作**100%**不是我的责任...如何关闭javascript有什么不同? (13认同)
  • 我只是部分同意这一点,如果它非常复杂或者需要更多的努力才能让它在没有javascript的情况下工作......那么你就没有得到这个功能.例如,尝试在这里关闭javascript然后投票,或回复此评论...有些事情只是不合理*没有javascript,并且用户可以选择将其关闭. (8认同)
  • 我发现人们有点傲慢地说所有功能都必须与JS关闭.感谢您告诉我如何优化我的工程资源,以便我可以满足他们地下室的两个人总是使用没有白名单的NoScript扩展,以及2001年使用移动电话浏览器的人. (6认同)
  • @Peter - 您可以自己找到数字:http://stackoverflow.com/questions/121108/how-many-people-disable-javascript当然,取决于您的受众对于哪些数字对您来说很重要,但这个数字并不是'突然冒出来.此外,你有一个非常奇怪的功能定义,因为大多数人会将其定义为"什么东西做".它是所有"功能",无论是*必要*功能(例如导航),都是重点. (2认同)