ASP.Net AJAX と JQuery を併用する場合の欠点
-
09-06-2019 - |
質問
jQuery ライブラリを使用して、クライアント側の JavaScript のニーズを強化する予定です。
ASP.Net AJAX と jQuery の両方を使用しようとする場合に大きな問題はありますか?どちらのライブラリも $ を特別な目的に使用しているようです。注意すべき競合はありますか?
また、ASP.Net AJAX を使用する Telerik コントロールも使用します。
TIA
解決
私たちは大規模なプロジェクトで ASP.NET Ajax、jQuery、および Telerik コンポーネントをかなり長い間使用してきましたが、何も問題はありませんでした。
jQueryを使用することを強くお勧めします
他のヒント
jQuery にはコアの一部として noConflict() メソッドがありますが、その場合、jQuery を名前付き関数として使用するか、(ドルセレクターの代わりに) 選択した他のものを使用する必要があります。ただし、このメソッドは多くの場合、「競合する」ライブラリの実装に依存していると言いたいと思います。私はこれを Ning ソーシャル ネットワーク (Dojo を使用) と Magento (Prototype を使用) に使用しようとしましたが、どちらも jQuery で正しく動作させることができませんでした。これは単なる私の個人的な経験であり、他の人は非常に成功しています。
ASP.NET Ajax の開発者は、ライブラリを jQuery と組み合わせて使用できるようにするための特別な手順を実行しました。
たとえば、ATLAS CTP (ベータ版から ASP.NET Atlas になりました) には $() 関数がありましたが、削除され、$get() に置き換えられました。
1 つの欠点は、コンテナーに応じてサーバー側コントロールの名前が変更される可能性があることです。たとえば、次のような場合があります。
<asp:panel id="panel1" runat="server"></asp:panel>
これは次のようにページにレンダリングされます。
<div id="ctl00$panel1"></div>
したがって、次を使用して jQuery を記述すると、 $('#panel1')
セレクターとしては機能しません。これを回避するには、ID を動的に生成します。例:
Dim js as String = "$('" & panel1.ClientID & "').whatever();"
これにより、JavaScript が少し読みにくくなる可能性がありますが、非常にうまく機能します。私はこの方法を使用して大規模な Web アプリに取り組んでいます。jQuery のおかげで、サイトの見栄えや動作が大幅に改善されたことは言うまでもなく、時間を大幅に節約できました。
当然のことながら、jQuery の $ 関数と ASP.NET AJAX の $ 接頭辞付きショートカット関数 ($get、$find、$create など) の間に競合はありません。変数を使用するのと同じです f という名前の変数の使用を妨げるものではありません fああ。
jQuery と ASP.NET AJAX は、ほとんどの場合、うまく連携して動作します。過去 1 年間で、ASP.NET AJAX が jQuery コードを壊すのを見たのは、 jDrawer を使用したこのシナリオ. 。ただし、回避策は悪くありませんでした。
私は.netの別のJavaScriptフレームワークであるextを使用しています。昔ながらの HTML フォーム コントロールよりもはるかに使いやすいです。
<input type="text" id="whatever" />
ASP.net フォーム コントロールを使用するよりも。おそらく、それほど優れていない組み込みの .net バリデータではなく、クールな JavaScript フレームワークのフォーム検証を使用したいと思うでしょうが、それはあなたの好みによると思います
.net コントロールを引き続き使用したい場合は、マークアップで生成された ID が定義したものとは異なることに注意してください。そのため、JS で ID によってコントロールを参照したい場合は、次のコマンドを使用します。
<%=MyControlId.ClientID%>
この質問に関連する最近の展開:
Scott Guthrie が 2008 年 9 月 28 日に投稿しました (参照: http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx)マイクロソフトは実際に Visual Studio で JQuery の出荷を開始. 。MVC プロジェクトにはデフォルトでライブラリが含まれます。Scott 氏は、これは JQuery チームの同意と奨励のもとで行われていると述べています。
元の投稿を参照してください 全詳細.
どうやら、Telerik はリリース第 3 四半期から、RadControl の一部に jQuery を追加し始めたようです。
私は jQuery と RadControls の両方を使用していますが、この絡み合いをこれ以上調べる時間がありません...両方の方向にスイングする可能性があります...
これにはより多くのクラスターf***が必要になるのではないかと私は漠然と感じていますが、それはこれとその一部に関する一般的な経験に基づいているだけです ;-)
このテーマに関する Telerik の Atanas Korchev のブログをチェックしてください。
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 と組み合わせて使用しました。どちらも異なる処理を行うためです。2つを一緒に使用しても問題が発生したことはありません。実際、私は非常に強力な jQuery セレクターを使用して、奇妙な ASP.NET ID の混乱を回避しています。要素のクラスとサブ要素 (基本的に CSS) を選択できるため、非常に使いやすくなります。