PDA

View Full Version : سوال: چرا این دو فایل جاوا اسکریپت مثل آدم با هم کنار نمیان؟



ali helali
یک شنبه 14 فروردین 1390, 15:32 عصر
سلام
من بعد یکی دو هفته ور رفتن با دو قسمت از سایتم که شامل منو و اسلاید شو هست و تو این انجمن هم در هر دو موردش پرسیدم و کمک خواسته بودم، حالا که اومدم کنار هم تو صفحه ی اصلی سایت بزارم با هم نمی خونن و یکی کار میکنه و اونیکی نه و بر عکس.بعد کلی ور رفتن دیدم مشکل از دو فایل mootools.js و jquery.min.js هست.

1- چطوری می تونم این دو تا فایل رو به صفحه بدم بدون اینکه باهم تداخل کنن و اسلاید شو و منو متحرک باهم کار کنن؟

2- و اینکه آیا من از جی کوئری زیاد استفاده کنم احساس کردم تو ie8 سرعت یکم پایین اومده. سرعت لود صفحه رو نمی گم ها. سرعت مثلا باز شدن منو و یا اسلاید شو . کسی چیزی در این مورد میدونه؟

اینم اسلاید شو و منو متحرک که استفاده کردم:

اسلاید شو (http://barnamenevis.org/showthread.php?280238-%DA%A9%D9%85%DA%A9-%D8%AF%D8%B1-%D9%85%D9%88%D8%B1%D8%AF-%DB%8C%D8%A7%D8%AC%D8%A7%D8%AF-%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-%D8%AF%D8%B1-%D8%A7%DB%8C%D9%86-%D8%A7%D8%B3%D9%84%D8%A7%DB%8C%D8%AF-%D8%B4%D9%88&p=1236508#post1236508)

منو متحرک (http://barnamenevis.org/showthread.php?280774-%DA%86%D8%B7%D9%88%D8%B1%DB%8C-%D9%85%DB%8C-%D8%AA%D9%88%D9%86%D9%85-%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-%D9%85%D9%88%D8%B1%D8%AF-%D9%86%D8%B8%D8%B1%D9%85-%D8%B1%D9%88-%D8%B1%D9%88-%D8%A7%DB%8C%D9%86-%D9%85%D9%86%D9%88-%D9%BE%DB%8C%D8%A7%D8%AF%D9%87-%DA%A9%D9%86%D9%85%D8%9F&p=1238872#post1238872)

mehdi.mousavi
یک شنبه 14 فروردین 1390, 16:09 عصر
سلام بعد کلی ور رفتن دیدم مشکل از دو فایل mootools.js و jquery.min.js هست.

1- چطوری می تونم این دو تا فایل رو به صفحه بدم بدون اینکه باهم تداخل کنن و اسلاید شو و منو متحرک باهم کار کنن؟

2- و اینکه آیا من از جی کوئری زیاد استفاده کنم احساس کردم تو ie8 سرعت یکم پایین اومده. سرعت لود صفحه رو نمی گم ها. سرعت مثلا باز شدن منو و یا اسلاید شو . کسی چیزی در این مورد میدونه؟


سلام.


برای استفاده از کتابخانه های jQuery و Mootools بطور همزمان در یک صفحه، میتونید از noConflict در jQuery استفاده کنید (بدین ترتیب (http://davidwalsh.name/jquery-mootools)).
منظورتون از استفاده زیاد از jQuery چیه؟ در JavaScript، عموما بیشتر کدهایی که نوشته میشن در آن واحد اجرا نمیشن. به بیان دیگه، بر اساس شرایط خاصی که کاربر ممکنه در روند کار با صفحه بوجود بیاره، ممکنه بخش هایی از کد اجرا بشن و بخش هایی نیز هرگز اجرا نشن. بنابراین، استفاده زیاد از jQuery باید درست معنا بشه. اگر منظورتون "سرعت باز و بسته شدن Menu هستش" خیر. کم و زیاد کردن کدهای JavaScript تاثیری در سرعت باز و بسته شدن منو ها نخواهد داشت مگر اینکه در روند نمایش یا محو شدن منو، کد JavaScript ای اجرا بشه که باعث کندتر شدن اجرای Script بشه. بطور کلی، سرعت اجرای JavaScript در IE8 بسیار پایین تر از سرعت اجرای همون کدها در Modern Browser هاست.

موفق باشید.

ali helali
یک شنبه 14 فروردین 1390, 17:22 عصر
آقای موسوی من زیاد از جاوا اسکریپت چیزی نمی دونم.مثال اون سایت رو هم دیدم ولی نفهمیدم بدنه ی اصلی noconflict کدومه و من اگه بخوام منو و اسلاید شو رو استفاده کنم باید چی رو با چی جایگزین کنم.مثلا از p استفاده کرده بود که نمیدونم منم همونو بنویسم یا نه؟
اگه می تونین با توجه به اون اسلاید شو و منو متحرکی که گذاشتم کدی رو که من باید به صفحه اضافه کنم رو اینجا بدین و اینکه کجای صفحه باید اضافه کنم؟. ممنون میشم.

فکر کنم بدنش این باشه ولی به جای اون قسمت قرمز رنگ ها چی بنویسم؟:متفکر: کسی می تونه کمکی کنه؟



<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript">
jQuery.noConflict();

(function($) {
/*whatever jQuery stuff*/
})(jQuery);
</script>

<script type="text/javascript" src="moo1.2.js"></script>
<script type="text/javascript">
window.addEvent('domready',function() {
/*whatever MooTools stuff*/
});
</script>




در مورد سرعت اجرای منو ها هم اینکه من قبلا منو رو به تنهایی تو ie8 اجرا کردم حتی تو ie7 سرعتش با ie9 فرقی نمی کرد ولی وقتی با اسلاید شو کنار هم اجرا کردم سرعتش پایین اومده بز شدن منو ها.

eleboys
دوشنبه 15 فروردین 1390, 13:12 عصر
پیشنهاد کلی من به شما اینه که دو Library جاجوااسکریپت رو باهم استفاده نکنید! حتی اگر مشکل Conflict رو هم حل کنید کاربران بیچاره شما چه گناهی کردن که باید صفحه ای با این حجم (هر کدوم از کتابخانه ها حدود 70k هست) رو باز کنه!!
تازه بعدا مدیریتش برای خودتون سخت میشه.

بهتره بگردید و یه اسلایدشو که با جی کوئری هست پیدا کنید دوست من.

البته مشکلت با همین راه حلی که کاربر mehdi.mousavi گفت باید حل بشه.