2009-04-22 18 views

risposta

32

Personalmente preferisco jQuery per i seguenti motivi: -

  1. La comunità plug-in è molto più varia e attira gli sviluppatori da una vasta gamma di sfondi (non solo lo stack MS). Al momento, per MS-AJAX sei alquanto limitato al toolkit di controllo AJAX per i tuoi widget di interfaccia utente.
  2. Trovo l'API jQuery molto più comune delle attività clientide rispetto a MS AJAX
  3. Data la mancanza di fumi e specchi WebForm in corso in MVC a volte è necessario un controllo costante sul DOM per fare determinate cose, Il motore di selezione CSS offerto da jQuery ti aiuta davvero a farlo.

In termini di ciò che MS AJAX vi offre in MVC, si può fare molto per voi in termini di dare voi un modo rapido per "AJAXify" forme e collegamenti, ma per quanto mi riguarda 90KB aggiungendo vale la pena di javascript per farlo non vale la pena quando le chiamate equivalenti in jQuery (ad esempio $ .get, $ .post, $ (elemento) .load) sono relativamente facili da usare.

1

Vorrei menzionare il fatto che Microsoft supporta JQuery e che saranno supportati nelle prossime versioni di Visual Studio. Per ulteriori informazioni, visitare http://live.visitmix.com/. ASP.NET AJAX e jQuery non si sovrappongono molto, quindi ti piacerebbe usarli entrambi.

4

JQuery è una libreria lato client. Asp.Net Ajax include funzionalità lato client e lato server. IMHO, il confronto non è giusto. Potrebbero completarsi a vicenda seguendo i piani di Microsoft.

+2

Non sono d'accordo Charlie, JQuery può effettuare callback alle funzioni lato server, proprio come ASP.NET Ajax utilizza Javascript per fare la stessa cosa. Sono entrambi framework lato client, ASP.NET AJAX ha una migliore incapsulamento del codice postback, mentre JQuery ti offre un maggiore controllo su di esso. – emalamisura

2

Esiste una variante di ASP.NET AJAX per MVC, utilizzata con AjaxHelper ed estensioni. Questo funziona bene in concerto con jQuery. Ho casi in cui utilizzo entrambi sulla stessa pagina; utilizzando MVC AJAX per aggiornare un DIV basato su un pulsante e utilizzando jQuery per ottenere dati JSON per un'operazione diversa sulla stessa pagina. È necessario utilizzare ASP.NET AJAX standard (UpdatePanels, ecc.) Nel mondo WebForms, non in MVC.

18

Personalmente, nonostante il supporto HtmlHelper per ASP.NET Ajax, trovo jQuery ajax in congiunzione con lo JQuery forms plugin per essere il modo più semplice per creare post di moduli Ajax in ASP.NET MVC.

ad es. con una chiamata jQuery in una pagina comparatore html con un modulo per prodotto permettendo all'oggetto da aggiungere ad un cestino, una sola riga di codice jquery può 'ajaxify' tutte le forme nella pagina

$(".productListItem form").ajaxForm({ target: '#extraInfoSection' }); 

combinato con una semplice proprietà 'IsAjaxRequest' in una classe di base controller che controlla le intestazioni:

Request.Headers["X-Requested-With"] == "XMLHttpRequest" 

e una certa logica nel controller per restituire il tipo di risposta corretta:

return IsAjaxRequest ? (ActionResult) View("BasketPartial", basket) : new RedirectBackToReferrerActionResult(); 

hai un modulo che funziona anche con javascript disattivato e nessun Ajax di ASP.NET coinvolto.

+3

Funziona con la convalida lato server? –

1

Prima di tutto, potrebbe essere utile prendere in considerazione che ASP.NET MVC non supporta, o meglio, non ha il concetto di postback ..

  1. asp.net ajax è basato sul meccanismo post-back, lato server, la sua missione è rendere più facile l'integrazione delle funzionalità di ajax in modalità lato server
  2. jQuery, come altri framework (ad es. Extjs) implementa un client ajax puro

È ancora possibile utilizzare i controlli del server asp.net in asp.net mvc, asp.net ajax è uno di loro, ma asp.net MVC è fatta, si è pensato, per separare preoccupazioni (visualizzazioni) e di essere REST designato il più vicino possibile, in modo da prendere questo in mente il pensiero finale sarebbe:

  1. Utilizzando ASP.NET Web Forms ASP.NET AJAX è la choiche destra
  2. Utilizzando ASP.NET MVC è meglio cercare di andare cliente, in modo jQuery (o altri) è il migliore

Ci dispiace per il mio inglese

1

Utilizzare ASP.NET AJAX con Web Form e jQuery con ASP.NET MVC

+0

Qual è la motivazione alla base di questo? Inoltre, all'avvio di un nuovo progetto, quale dei due scegliereste, ASP.NET AJAX con Web Form o jQuery con MVC? E perché non jQuery con Web Form e metodi di pagina/servizi Web? Sono occupato a decidere se vale la pena passare a MVC, anche se non è così noto, anche se provengo da uno sfondo Java Struts/JSF, quindi il paradigma MVC è comunque nella mia mente. – jamiebarrow

9

Invece di fare una raccomandazione, suggerisco di leggere il blog di Dave Ward Encosia che ha una serie di post su MS Ajax/Pannello di aggiornamento rispetto al meccanismo di post di jQuery. Dave sostiene che le prestazioni di jQuery sono di gran lunga superiori dato che si riduce approssimativamente a 100K from the transmission to and from the server.

+6

Questi post sono più interessati ai WebForm che a MVC. Il risparmio di 100k menzionato in quel post è solitamente la spazzatura che accompagna un UpdatePanel (ViewState the Delta ecc.). In MVC quello che va avanti e indietro lungo il filo dovrebbe essere approssimativamente equivalente (è solo l'astrazione sopra la XmlHttpRequest che differisce). –

+2

Ho la sensazione che migrerò all'MVC perché trovo frustranti i Web Form perché sembra che ci siano così tanti cerchi da passare per implementare tecniche Ajax avanzate. –

+4

Poiché inizialmente ponevo questa domanda vorrei aggiungere ai commenti su questa conversazione, in base a ciò che ho imparato. Anche se MVC non utilizza WebForms, costruisce comunque la gerarchia di controllo per il suo ViewEngine poiché si basa ancora sul ViewEngine ASP.NET. Pertanto direi che l'overhead citato da Dave Ward è ancora in qualche modo applicabile. Certo i numeri potrebbero essere inferiori a causa di nessun ViewState, ecc. Ma alcuni dei costi generali esistono ancora, a meno che, naturalmente, non si sostituisca ASP.NET ViewEngine con qualcosa come Spark, quindi non c'è assolutamente nessuno ... – emalamisura

1

Un'altra alternativa che probabilmente potresti guardare è Ajax.NET, http://www.ajaxpro.info/. Suppongo sia meglio di ASP.NET AJAX per WebForms. È eseguibile anche in MVC.

1

Prima di tutto, è possibile utilizzare entrambi, fino a quando si parla di Microsoft Ajax, si fa riferimento solo alla libreria client. È possibile utilizzare la libreria client MS Ajax e la maggior parte degli estensori del toolkit senza controlli lato server. Ho creato un'applicazione piuttosto grande utilizzando i moduli Web e Microsoft Ajax, quindi l'ho convertita in MVC/jquery. Ho scoperto che stavo usando sempre meno funzioni nella libreria MS Ajax. C'è così tanto disponibile con i plugin, che rende obsoleto anche il toolkit ajax.

Se si sta parlando di MS Ajax utilizzando i pannelli di aggiornamento ecc., Quindi direi di no, non è possibile utilizzarli in MVC. In effetti, non usarli affatto! i pannelli di aggiornamento sono simulati ajax, la pagina continua a passare attraverso il suo ciclo di vita quasi a vanificare lo scopo dell'utilizzo di ajax.