ورود

View Full Version : سوال: تفاوت document.load و window.load



Javad.Kashi
پنج شنبه 11 فروردین 1390, 01:14 صبح
سلام
در این آدرس (http://addyosmani.com/blog/8-jquery-performance-tips/) مقایسه ای بین widnow.load و document.load صورت گرفته و نتیجه تا آنجا که من فهمیدم این بود که window بهتر و بهینه تر است.
سوال من اینه که فرق اصلی این دو چیست ؟
و نظر شما اساتید در مقایسه این دو چیست؟
این هم متن :

Document.ready isn’t a terrible thing, but it’s a habit that many developers still have including myself occasionally. It doesn’t matter where you’re using $(function(){}); or the full version of this, but truth be told it is significantly more optimal to be using Window.load in your applications.
The reason behind this idea is that document.ready happens during page render while objects are still downloading and that cause some stalls in your page. You don’t want that. You can however reduce the CPU utilization during the page load by binding your jQuery functions to the $(window).load event – it occurs after all objects called by the HTML have fully completed downloading.
That’s one line change that can give you scripts that little extra performance boost!.
یا علی

mehdi.mousavi
پنج شنبه 11 فروردین 1390, 11:56 صبح
سلام.
Ready Handler یا همون

$(document).ready(function() {
//whatever...
});


وقتی Call میشه که DOM Document شما Load شده باشه (فارغ از اینکه تصاویر مورد استفاده در Document، بارگذاری شده اند یا خیر). در صورتیکه window.load وقتی Call میشه که علاوه بر DOM Document، تصاویر، Frame ها و ... بطور کامل دریافت شده و در حافظه بارگذاری شده اند:


$(window).load(function() {
//whatever...
});

طبیعتا اگر از تابع دوم استفاده کنید، مدت زمان بیشتری طول میکشه تا این تابع Call بشه (بسته به محتوای صفحه)، البته Addy Osmani منظورش از جمله ای که شما ازش نقل قول کردید این بوده که اگر از دومی استفاده کنید، چون Load اشیاء صفحه پایان پذیرفته و مرورگر کار دیگه ای نداره بکنه، اونوقت مرورگر مثل حالتی که از Ready Handler استفاده می کنید، برای یک لحظه هم Unresponsive نمیشه (که از نظر من این کاملا بستگی به این داره که چه کدی می نویسید و مطلقا با این حرفش موافق نیستم). در هر حال، من به شخصه Ready Handler رو ترجیح میدم مگر اینکه نیاز به انجام عملیاتی باشه که پس از Load کامل صفحه باید انجام بشه که اونوقت از window.load استفاده خواهم کرد.

موفق باشید.