Javascript jQuery-一些初学者问题

Javascript jQuery-一些初学者问题,javascript,jquery,Javascript,Jquery,我是jQuery的初学者,我有一些基本问题: 只要有可能通过使用jQuery替换某些内容,就建议使用jQuery吗?例如,使用它而不是通过HTML将所有事件绑定到元素上是否谨慎 是自己托管jQuery.js文件和所有其他相关文件(如jQuery UI)更好,还是使用Google的链接更好(他们似乎也为其他人托管) 当页面加载完成后执行脚本时,首选哪种方式 $(文档).ready(函数(){}) $(函数(){}) $().ready(函数(){}) 它们似乎都做相同的事情,但是脚本编写的首选方式

我是jQuery的初学者,我有一些基本问题:

  • 只要有可能通过使用jQuery替换某些内容,就建议使用jQuery吗?例如,使用它而不是通过HTML将所有事件绑定到元素上是否谨慎

  • 是自己托管jQuery.js文件和所有其他相关文件(如jQuery UI)更好,还是使用Google的链接更好(他们似乎也为其他人托管)

  • 当页面加载完成后执行脚本时,首选哪种方式

  • $(文档).ready(函数(){})
  • $(函数(){})
  • $().ready(函数(){})
  • 它们似乎都做相同的事情,但是脚本编写的首选方式是什么

  • 对。这样,JS就与html完全分离了。您可以查看文件,一眼就能看出它是如何影响HTML的。如果它嵌入到HTML中,您将不得不查找onClick、onLoad等,对于大型应用程序,它可能会变得非常混乱

  • 客户端浏览器将缓存文件,因此如果您使用google版本的JQuery,它将不必从服务器上下载。节省带宽

  • $(document).ready(function(){})
    是首选
    $(function(){})
    仅定义要执行的块,如果它是页面上最后一个要执行的内容,则它将仅在页面准备就绪后执行


  • 1:不,这完全取决于你。通常,jQuery会导致性能损失,因为它是一个额外的抽象层。只有当你觉得它有助于你更轻松地完成工作时,才使用它。然而,除非您确实需要优化性能,否则使用它的好处将远远超过成本。jQuery为您提供了经过尝试和测试的交叉浏览器兼容性,如果您希望满足所有不同浏览器的需求,那么自行实现这一兼容性可能会花费高昂的成本

    2:使用谷歌版本:这样你的用户就有可能已经缓存了它,不需要从你的站点再次加载它

    3:第二个选项,快捷方式被广泛使用,我认为它更受欢迎,尽管第一个选项很好,很具体。我从不使用第三个选项。是和否。无论是否使用jQuery,绑定事件
    都被认为是最佳实践(这意味着严格区分
    javascript
    html
    和任何其他语言)。由于jQuery允许轻松绑定事件,因此使用内联处理程序是一种更好的方法

    2.)你应该使用CDN(比如google)来交付静态文件,比如jQuery,用于缓存目的+它们有一个巨大的服务器网络,甚至可能比你自己的主机还要快

    3.)我会坚持前两个电话。无论如何,基本上它们都能做到,但最好的可读性可能是
    $(document).ready(function(){})

  • 我个人并不赞同“将JS与HTML完全分离”的理念。我很少看到真实世界的用例有任何好处。将HTML与JS分离通常会导致在HTML中显示“单击此处执行X”的按钮,但除非使用适当的javascript,否则什么也不做。有点没抓住重点。 以jQuery和事件为例。。。如果我可以检查firebug中的HTML按钮并查看该按钮的功能(通过查看onclick属性),我发现调试应用程序要容易得多
  • 使用谷歌版本可以帮助缓存,但不要直接链接到jquery.com。我们在这里做过一次,他们就下去了,把我们带走了
  • 1) 在脚本中保留所有事件绑定。这使得以后很容易更改。您还希望有一个单独的位置来查找所有与事件相关的逻辑

    2) 这是一个很好的例子

    3) 我更喜欢简洁的#2,但真正理想的方法是:


    如果使用其他为3d点定义$.

    的框架,则避免冲突,但不使用任何框架。出于性能原因,通常建议将脚本放在关闭标记之前。因此,您无需等待
    ready
    事件:在此阶段,页面已加载

    检查,第1.2章:执行jQuery/JavaScript编码,DOM已加载,但尚未完成页面加载(这本书是必读的)


    要快速了解这项技术,请查看(关于这一主题还有许多其他帖子)

    我想详细介绍一下#3会很好。我没有看到使用1或3有什么不同(我认为2在被点击的那一刻运行,而不是在加载文档时运行,但我不是100%确定),虽然我更喜欢使用您指定的选项,但这真的仅仅是因为语法(这使得调用它时很明显)或者还有其他区别吗?它更容易阅读…你不需要查找它就知道它在做什么。几乎每个JQuery插件和站点都显示文档就绪。我工作过的每一家使用JQuery的公司都使用Document.ready。它肯定是最常用的。我认为这是首选。我看你不完全同意克里斯。时间惩罚可以忽略吗?或者我真的应该意识到吗?我认为第1点中的OP指的是$().click()vs.onclick=“”,我认为您回答了jQuery vs.pure javascript。如果是这样的话,我也像你一样理解它,尽管其他答案的想法不同,但经过再三考虑,我认为它们是对的。虽然我可能误解了you@pim这取决于你需要什么。jQuery的存在是为了方便,它可以大大缩短开发时间。如果您正在构建的应用程序没有处理大量数据,那么抽象层的性能损失很可能不是问题。如果您喜欢我处理一个处理非常大数据量的大型项目,那么jQuery可能会成为一个瓶颈,您可以在不断增加的开发
    jQuery(function($) {
      // Your code using failsafe $ alias here...
    });