سؤال

نحن نخطط لاستخدام مكتبة jQuery لزيادة احتياجات JavaScript من جانب العميل.

هل هناك أي مشكلات رئيسية في محاولة استخدام كل من ASP.Net AJAX وjQuery؟يبدو أن كلتا المكتبتين تستخدمان $ لأغراض خاصة.هل هناك أي صراعات يجب أن نكون على دراية بها؟

نستخدم أيضًا عناصر تحكم Telerik التي تستخدم ASP.Net AJAX.

تيا

هل كانت مفيدة؟

المحلول

لقد استخدمنا مكونات ASP.NET Ajax وjQuery وTelerik في مشروع كبير لفترة طويلة ولم نواجه أية مشكلات

بالتأكيد أوصي باستخدام jQuery

نصائح أخرى

تحتوي jQuery على طريقة noConflict() كجزء من النواة، ولكنها تتطلب بعد ذلك إما استخدام jQuery كدالة مسماة أو أي شيء آخر من اختيارك (بدلاً من محدد الدولار).ومع ذلك، سأقول أن الطريقة غالبا ما تعتمد على تنفيذ المكتبة "المنافسة".لقد حاولت استخدامه لشبكة Ning الاجتماعية (التي تستخدم Dojo)، ولـ Magento (الذي يستخدم Prototype)، ولم أتمكن من تشغيل أي منهما بشكل صحيح باستخدام jQuery.هذه مجرد تجربتي الشخصية، والبعض الآخر كان ناجحًا جدًا.

http://docs.jquery.com/Core/jQuery.noConflict

اتخذ مطورو ASP.NET Ajax خطوات محددة للتأكد من إمكانية استخدام المكتبة مع jQuery.

على سبيل المثال، كان ATLAS CTP (الإصدار التجريبي الذي أصبح ASP.NET Atlas) يحتوي على وظيفة $()، ولكن تمت إزالته واستبداله بـ $get().

أحد الجوانب السلبية هو أنه يمكن إعادة تسمية عناصر التحكم من جانب الخادم، اعتمادًا على حاوياتها.على سبيل المثال، قد يكون لديك:

<asp:panel id="panel1" runat="server"></asp:panel>

قد يتم تقديم هذا إلى الصفحة على النحو التالي:

<div id="ctl00$panel1"></div>

لذلك إذا كتبت jQuery باستخدام $('#panel1') كمحدد، فإنه لن يعمل.والطريقة للتغلب على ذلك هي إنشاء المعرف ديناميكيًا، على سبيل المثال:

 Dim js as String = "$('" & panel1.ClientID & "').whatever();"

وهذا يمكن أن يجعل جافا سكريبت غير قابل للقراءة قليلا، لكنه يعمل بشكل جيد.أنا أعمل على تطبيق ويب كبير باستخدام هذه الطريقة، وقد وفر لنا jQuery الكثير من الوقت، ناهيك عن جعل الموقع يبدو ويعمل بشكل أفضل.

على أية حال، لا يوجد تعارض بين وظيفة $ في jQuery ووظائف الاختصار ذات البادئة $ الخاصة بـ ASP.NET AJAX ($get، $find، $create، إلخ).تمامًا مثل استخدام المتغير F لا يمنعك من استخدام متغير اسمه Fس.

يعمل كل من jQuery وASP.NET AJAX معًا بشكل جيد في معظم الحالات.في العام الماضي، المرة الوحيدة التي رأيت فيها ASP.NET AJAX يكسر كود jQuery كان هذا السيناريو مع jDrawer.الحل البديل لم يكن سيئًا بالرغم من ذلك.

لقد كنت أستخدم ext وهو إطار عمل جافا سكريبت آخر مع .net.إنه أسهل بكثير في الاستخدام من عناصر تحكم نموذج HTML القديمة

<input type="text" id="whatever" />

بدلاً من استخدام عناصر تحكم نموذج ASP.net.من المحتمل أنك ترغب في استخدام التحقق من صحة نموذج إطار عمل جافا سكريبت الرائع بدلاً من أدوات التحقق من الصحة المضمنة غير الرائعة في .net أيضًا، ولكن أعتقد أن هذا يرجع إلى تفضيلاتك

إذا كنت تريد الاستمرار في استخدام عناصر تحكم .net، فتذكر أن المعرف الذي تم إنشاؤه في الترميز يختلف عما تحدده، لذلك إذا كنت تريد الإشارة إلى عنصر تحكم بواسطة المعرف في JS، فاستخدم:

<%=MyControlId.ClientID%>

تطور حديث يتعلق بهذا السؤال:

نشر سكوت جوثري في 28 سبتمبر 2008 (انظر: http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx) أن مايكروسوفت سوف في الواقع ابدأ في شحن JQuery باستخدام Visual Studio.ستتضمن مشاريع MVC المكتبة بشكل افتراضي.يشير سكوت إلى أن هذا يتم بموافقة وتشجيع فريق JQuery.

انظر المنشور الأصلي ل تفاصيل كاملة.

على ما يبدو، بدأت Telerik في إضافة jQuery إلى بعض أدوات RadControls الخاصة بها، بدءًا من الإصدار Q3.

أستخدم كلاً من jQuery وRadControls، لكن لم يكن لدي الوقت الكافي لمزيد من البحث في هذا التشابك... يمكن أن يتأرجح في كلا الاتجاهين....
لدي شعور شامل بأن هذا يستلزم المزيد من المجموعات***، ولكن هذا يعتمد فقط على الخبرة العامة مع بعض من هذا والقليل من ذلك؛-)

قم بزيارة مدونة Atanas Korchev على Telerik حول هذا الموضوع فقط:
http://blogs.telerik.com/AtanasKorchev/Posts/08-11-06/ASP_NET_Ajax_Controls_and_jQuery.aspx

ونتمنى حظًا سعيدًا لنا جميعًا عندما يختلط كل من MS وjQuery وTelerik وJP Morgan وMcDonalds ويمزجون على أجهزة سطح المكتب لدينا...؛-)

لقد استخدمت jQuery مع ASP.NET Ajax حيث أن كلاهما يقوم بأشياء مختلفة بشكل جيد.لم أواجه مشكلة أبدًا في استخدام الاثنين معًا.في الواقع، تمكنت من التغلب على مزيج معرفات ASP.NET الغريب باستخدام محددات jQuery فائقة القوة.من خلال القدرة على تحديد الفئات والعناصر الفرعية للعناصر (بشكل أساسي CSS)، فإن ذلك يجعلها سهلة الاستخدام للغاية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top