Domanda

Stiamo pianificando di utilizzare la libreria jQuery per aumentare le nostre esigenze JavaScript lato client.

Ci sono problemi importanti nel provare a utilizzare sia ASP.Net AJAX che jQuery?Entrambe le librerie sembrano utilizzare $ per scopi speciali.Ci sono conflitti di cui dobbiamo essere consapevoli?

Utilizziamo anche controlli Telerik che utilizzano ASP.Net AJAX.

TIA

È stato utile?

Soluzione

Utilizziamo i componenti ASP.NET Ajax, jQuery e Telerik su un progetto di grandi dimensioni per un bel po' e non abbiamo riscontrato alcun problema

Consiglierei sicuramente di utilizzare jQuery

Altri suggerimenti

jQuery ha un metodo noConflect() come parte del core, ma richiede quindi l'utilizzo di jQuery come funzione denominata o qualcos'altro a tua scelta (invece del selettore del dollaro).Tuttavia, dirò che il metodo dipende spesso dall'implementazione della libreria "concorrente".Ho provato a usarlo per un social network Ning (che utilizzava Dojo) e per Magento (che utilizza Prototype), e non sono riuscito a far funzionare nessuno dei due correttamente con jQuery.Questa è solo la mia esperienza personale e altri hanno avuto molto successo.

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

Gli sviluppatori di ASP.NET Ajax hanno adottato misure specifiche per assicurarsi che la libreria potesse essere utilizzata insieme a jQuery.

Ad esempio, ATLAS CTP (la versione beta che è diventata ASP.NET Atlas) aveva una funzione $(), ma è stata rimossa e sostituita con $get().

Uno svantaggio è che i controlli lato server possono essere rinominati, a seconda dei loro contenitori.Ad esempio, potresti avere:

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

Questo può essere visualizzato nella pagina come:

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

Quindi se scrivi jQuery usando $('#panel1') come selettore, non funzionerà.Il modo per aggirare questo problema è generare l'ID in modo dinamico, ad esempio:

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

Questo può rendere il javascript un po' illeggibile, ma funziona abbastanza bene.Lavoro su un'app Web di grandi dimensioni utilizzando questo metodo e jQuery ci ha fatto risparmiare un sacco di tempo, per non parlare del fatto che il sito appare e funziona molto meglio.

Per quello che vale, non c'è conflitto tra la funzione $ di jQuery e le funzioni di scelta rapida con prefisso $ di ASP.NET AJAX ($get, $find, $create, ecc.).Proprio come usare una variabile F non ti impedisce di utilizzare una variabile denominata Foh.

jQuery e ASP.NET AJAX funzionano bene insieme nella maggior parte dei casi.Nell'ultimo anno, l'unica volta che ho visto ASP.NET AJAX interrompere il codice jQuery è stato questo scenario con jDrawer.La soluzione alternativa non era poi così male.

Sto usando ext che è un altro framework Javascript con .net.È molto più semplice da usare rispetto ai vecchi controlli dei moduli HTML

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

Rispetto all'utilizzo dei controlli del modulo ASP.net.Probabilmente vorrai utilizzare la fantastica convalida del modulo javascript framework in contrapposizione ai non eccezionali validatori .net integrati, ma immagino che dipenda dalle tue preferenze

Se vuoi continuare a utilizzare i controlli .net, ricorda che l'ID generato nel markup è diverso da quello che definisci, quindi se vuoi fare riferimento a un controllo tramite ID in JS usa:

<%=MyControlId.ClientID%>

Uno sviluppo recente relativo a questa domanda:

Scott Guthrie pubblicato il 28 settembre 2008 (vedi: http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx) che Microsoft effettivamente farà iniziare a fornire JQuery con Visual Studio.I progetti MVC includeranno la libreria per impostazione predefinita.Scott indica che ciò viene fatto con il consenso e l'incoraggiamento del team JQuery.

Vedi il post originale per tutti i dettagli.

Apparentemente, Telerik ha iniziato ad aggiungere jQuery ad alcuni dei suoi RadControl, a partire dalla versione Q3.

Utilizzo sia jQuery che RadControls, ma non ho avuto il tempo di approfondire questo intreccio...potrei oscillare in entrambe le direzioni....
Ho la netta sensazione che questo implichi più cazzate, ma è solo basato sull'esperienza generale con un po' di questo e un po' di quello ;-)

Dai un'occhiata al blog di Atanas Korchev su Telerik proprio su questo argomento:
http://blogs.telerik.com/AtanasKorchev/Posts/08-11-06/ASP_NET_Ajax_Controls_and_jQuery.aspx

e buona fortuna a tutti noi quando MS, jQuery, Telerik, JP Morgan e McDonalds si mescolano e si confondono sui nostri desktop...;-)

Ho usato jQuery con ASP.NET Ajax poiché entrambi fanno bene cose diverse.Non ho mai avuto problemi con l'utilizzo dei due insieme.In effetti, riesco ad aggirare lo strano miscuglio di ID ASP.NET utilizzando i potentissimi selettori jQuery.La possibilità di selezionare classi e sottoelementi di elementi (sostanzialmente CSS) lo rende molto facile da usare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top