PDA

View Full Version : فراخوني چند تابع در onload جاوا اسكريپت



eidazha
شنبه 13 اردیبهشت 1393, 21:18 عصر
سلام دوستان
يه مشكلي داشتم ، من يك سايت نشوتم كه به خاطر سرعت در انجام عمليات 4 قسمتشو ميخوام وقتي سايت لود شد (window.onlod) از طريق ajax فراخواني كنم وقتي داخل window.onload توابع ajax رو فراخواني ميكنم فقط يكي از توابع عمل ميكنه ! ميخواستم بدونم راهي هست كه بشه هر 4 تابع (شايدم در آينده بيشتر) رو هم زمان فراخواني كرد ؟

من از خود javascript براي ajax استفاده ميكنم نه jquery
نميخوام مشكل برنامه با jquery حل بشه چون به خاطر اينكه ميخوام صفحه با سرعت بيشتر لود بشه jquery يك فايل چند صد كيلوبايتي هست ، واسه همين هم از ajax استفاده كردم كه بعد لود صفحه اون 4 تابع با ajax لود بشه

ممنون ميشم دوستان كمك كنند.

{mahdi}
شنبه 13 اردیبهشت 1393, 22:08 عصر
EventUtil={}
EventUtil.addevent=function(element,type,handler,c ap){
if (element.addEventListener)
element.addEventListener(type,handler,cap);
else if(element.attachEvent)
element.attachEvent("on"+type,handler);
else
element["on"+type]=handler;
};EventUtil.removeevent=function(element,type,hand ler,cap){
if(element.removeEventListener)
element.removeEventListener(type,handler,cap);
else if(element.detachEvent)
element.detachEvent("on" +type,handler);
else
element["on"+type]=null;
}

با این تابع شما میتونید هر چند تابع رو که خواستید به یک شی اعمل کنید مانند


EventUtil.addevent(ELEMENT,EVENT,FUNCTION,FALSE);

در ضمن این تابع در مرورگرهای IE-Firefox-Chrome-Safari-seamonkey تست شده است

eidazha
شنبه 13 اردیبهشت 1393, 22:32 عصر
ممنون جناب مهدي
ميشه يك مثال هم بزني ؟ مثلا منظور از element ، event , function , false چيه ؟
تابع من يك تابع مثل اين هست
myfunction()
من تابع خود را كجاي EventUtil.addevent بايد بزارم ؟
و سوال دوم اينكه EventUtil.addevent بايد تو window.onload گذاشته بشه ؟
ممنونم

{mahdi}
شنبه 13 اردیبهشت 1393, 23:19 عصر
ببینیدEventUtil یه متغیره که داخل آن دو تابع به نام های addevent و removeevent وجو داره
که تابع اول برای اضافه کردن یک تابع
تابع دوم برای حذف تابع اضافه شده.
برای دسترسی به توابع باید به صورت زیر عمل کرد


EventUtil.addevent()
EventUtil.removeevent()

و منظور از چیز هایی که داخل پرانتز نوشته شده پارامتر های ورودی تابع هستند.
ELEMENT:شما می خواهید به چه چیزی این تابع را اضافه کنید
EVENT:در چه صورتی این تابع اجرا شود
FUNCTION :تابع مورد نظر جهت اجرا
FALSE:برای کنترل نحوه پخش EVENT که به طور پیش فرض false می باشد

مثال



EventUtil.addevent(window,'load',myfunction,false) ;


شما می تونید هر چند تابعی رو که خواستید به یک شی اعمل کنید و در صورت لزوم تابع اضافه شده رو با removeevent پاک کنید.

امیدوارم مفید بوده باشه.....

eidazha
شنبه 13 اردیبهشت 1393, 23:36 عصر
آقا خيلي ممنون دستتون درد نكنه حتما تستش ميكنم