چرا جی کوئری زمانی  که بعضی از صفحات Asp DotNet است کار میکند

چرا جی کوئری ؟

من یک مشکل عجیب داشتم که در آن یک عبارت jQuery ساده فقط یک بار در صفحه ASP.NET کار کرد. معلوم شد که کنترلهای به روز رسانی Update .NET در همان صفحه سبب مشکالت صفحه ای تازه از تماس AJAX شد.

 

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

 

$(document).ready(function () { $(‘#mybutton’).click(function () { $(‘.chartwin’).slideToggle(“slow”); }); });

اولین بار در صفحه، صفحه نمایش داده شد و همه چیز خوب به نظر می رسید. در حقیقت، پیش از آنکه متوجه شدم که زمانی که صفحه با استفاده از یک کنترل منقطع به طور خودکار توسط پست خودکار تأیید شد، دکمه من دیگر کار نمیکرد.

 

در مورد تحقیقات بیشتر در صفحه والدین، متوجه شدم که کنترل کاربری من در بخش کنترل Update.Progress نشسته است. UpdateProgress یک وسیله ساده برای استفاده از نسخه های صفحه جزئی فراهم می کند؛ این کار جادویی است وقتی که آن را کار می کند، اما من قبل از آن با آنها مشکلی داشتم، با دیگر جاوا اسکریپت (از جمله کنترل های AJAX ASP.NET) در همان صفحه دخالت کردم.

 

گاهی اوقات راه حل ها می توانند کاملا درگیر باشند، اما در این مسئله خاص، از یک راه حل ساده برای خواندن استفاده می شود.

 

مشکل این است که جی کوئری آماده (تابع () فقط یک بار اجرا می شود زمانی که صفحه برای اولین بار شروع می شود. هنگامی که صفحه تا حدی تجدید (همانطور که در یک تماس AJAX) ما باید به طور موثر دوباره رویدادهای جی کوئری.

 

برنامه All.NET رویداد Function PageLoad را بسیار خوب می شناسد، اما رویداد جاوااسکریپ معادل نیز وجود دارد. ما می توانیم از این برای بارگیری رویدادهای jQuery ما هر بار که صفحه تجدید می شود استفاده کنید. کد ما اکنون تبدیل می شود:

 

function pageLoad() { $(function () { $(‘#mybutton’).click(function () { $(‘.chartwin’).slideToggle(“slow”); }); }); }

 

آن را برای من ثابت کرد! نقطه ضعف این است که ما باید تمام jQuery را بارگیری کنیم هر بار صفحه به جای فقط یک بار تازه سازی می شود یا جزئی می شود. در این مورد برای من خیلی مشکل نبود.

 

توجه داشته باشید که با چک کردن DOM به طور کامل بارگذاری نمی شود (همانطور که در هنگام استفاده از (document) .ready، شما باید کد را به پایین صفحه اضافه کنید و پس از آنکه scriptmanager بارگیری شده است.

 

من نگران زمانی که باید کد بسازید کد جاوا اسکریپت را اجرا کنم، زیرا ممکن است برای تست و اشکالزدایی آن مشکل باشد. من در وب دیدم که اصلاحات پیچیده تر دیگری برای این مشکل وجود دارد که منجر به این می شود که فکر کنیم این یک راه حل قطعی برای همه مشکلات نیست، پس مراقب باشید. اگر از یک راه بهتر برای انجام این کار می شنوید، بگذارید بفهمم.

 

امکان ارسال دیدگاه وجود ندارد!