jQuery $(文档).ready();声明其中的所有函数
说明: 我有几个对象,我在 $(document).ready() 中声明它们。为什么?因为在数千个对象中我有很多jquery方法$(..),显然它们也可以在外面工作,但是当我包含mootool时,它就停止工作了。我尝试了 noConflict 和其他一些东西,只有当我将 $() 更改为 jQuery() 或 $j() 时,没有任何效果。并且我不想更改我的 20 个文件以及每个文件超过 2000 行。无论如何,在 $(document).ready() 中声明我的对象。让他们工作得很好。
现在我的问题是: 如果我在 $(document).ready() 方法中声明所有这些对象,它会让我的网站变慢吗?或者它会使客户端的速度变慢?这是我心中唯一关心的问题。
Explanation:
i have few objects and im declaring them inside $(document).ready(). WHY? because in thous objects i have many jquery methods $(..), obviously they can work outside too, but when i include mootool, then it stop working. i tried noConflict and some other things, nothing works, only if i change the $() to jQuery() or to $j().. and i dont want to change for my 20 files and more then 2000 lines for each file. anyway declaring my objects inside $(document).ready(). made them work just fine.
Now My Question is:
if i declare all these objects inside the $(document).ready() method, would it make my site slow? or would it make things slow from client side? thats the only concern in my mind.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我不明白这样做会让你的网站变慢。通过在
$().ready
中声明它们,您只是将声明的范围限制为特定的$().ready
函数,因此它们不会在同一页面上的其他就绪函数范围内可用 - 如果您的应用程序设计良好并且您坚持每页一个,那么这实际上不会成为一个麻烦。哦,在 DOM 完全加载之前,您的声明肯定不会被解析(如您所知,
$().ready
仅在 DOM 加载后执行),但这也应该这不是问题,因为您只在准备好的函数中使用它们(至少我希望如此)。你真的需要两个库吗?如果您只是使用这些库之一中的一两个小功能,那么您很可能可以使用您最常使用的库来模仿该行为。如果您可以/可行地做到这一点,那么您的生活就会变得更加简单。
I don't see how doing that would make your site slow. By declaring them within the
$().ready
you're simply restricting the scope of your declarations to that particular$().ready
function, thus they won't be available from within the scopes of other ready functions on the same page - which should not really be a bother if your application is well-designed and you've stuck to one per page.Oh, and your declarations certainly won't have been been parsed until the DOM is fully loaded, (as you know,
$().ready
only executes once the DOM has loaded), but that too should not be a problem as you're only utilizing them from within a ready function (at least I hope).Do you really need two libraries? If it's just one or two little tidbits of functionality you are using from one of those libraries chances are you can mimic that behaviour using the one you're making the greatest use of. If you can possibly/feasibly do that it will make your life so much simpler.
在
jQuery.ready
中执行所有操作都不会减慢您的网站速度。作为替代解决方案,您可以在所有 jQuery 代码中将
$
替换为jQuery
,或者您可以将其包装在如下函数中:此代码创建一个函数,该函数采用一个名为
$
的参数,并使用jQuery
对象调用该函数。$
参数将在函数范围内隐藏 mootools 的全局$
对象,允许您在函数内编写普通的 jQuery 代码。Doing everything in
jQuery.ready
will not slow down your site.As an alternative solution, you could replace
$
withjQuery
in all of your jQuery code, or you could wrap it in a function like this:This code makes a function that takes a paremeter called
$
, and calls that function with thejQuery
object. The$
parameter will hide mootools' global$
object within the scope of the function, allowing you to write normal jQuery code inside the function.只需声明
document.ready
请求之前的jQuery.noConflict
,然后将 jQuery 方法别名为document.ready
中的 $...Just declare
jQuery.noConflict
before thedocument.ready
request, then alias the jQuery method to $ within in thedocument.ready
...