2009-07-28 2 views
5

Obtenir JSON du côté client via AJAX est quelque chose que je recherche dans mon application ASP.NET MVC.Jquery ou XmlHttpRequest de base pour MVC AJAX

J'ai trouvé Jquery et le script XmlHttpRequest de base à cet effet. Je sais que la facilité avec la manipulation de dom est un aspect pour Jquery.But concerné par la taille de Jquery.

Mais ne trouve toujours pas pourquoi j'ai besoin de choisir et d'étudier Jquery sur le simple XmlHttpRequest poids léger en utilisant Javascript. Je veux savoir quelle est la meilleure pratique que je dois suivre ou y a-t-il autre chose qui me manque autre que celle-ci?

Thx

Répondre

14

JQuery est si commun ces jours-ci que si vous faites référence à partir Google's library, il est très probable que les gens ont déjà dans leur cache du navigateur et n'aura pas besoin de le télécharger quand même.

La taille de la bibliothèque JQuery réduite à seulement 56 Ko est inférieure à celle de nombreuses images. S'il est également compressé par le serveur web, il est beaucoup plus petit que cela. L'avantage évident de l'utilisation de JQuery est qu'il a déjà encapsulé toutes les actions XHR de base que vous devrez faire, et ce dans un environnement multi-navigateurs. Ainsi, au lieu d'écrire du code ajax fait maison, vous pouvez faire vos requêtes Ajax dans une ligne de javascript JQuery.

+2

Écouter Womp. Il est sur. Vous n'avez pas envie d'écrire votre propre JavaScript. Le code hacky développé en interne finit toujours par être aussi gros que jQuery sans pour autant fonctionner! –

+0

@womp tats un net avantage –

+0

Appréciez tous vos efforts. J'y vais pour Jquery. Mais ne laissez jamais XmlHttpRequest de base en cas de taille. La taille Less signifie moins de code, donc moins buggué. –

0

Je pense que la question de la taille de la charge utile des js lib sera compensé par son soutien multi-navigateur et handiness global pour le développement frontal ...

assurez-vous d'héberger la version minified en production.

plus jQuery est une bibliothèque js relativement légère, c'est un très bon choix de bibliothèque à apprendre.

il y a plein d'autres bien sûr:

J'aime aussi YUI et même MooTools

1

jQuery fournit beaucoup de plomberie qui vous facilitera la vie. Par exemple, les objets XmlHttpRequest doivent être instantiated as an ActiveX object pour les anciennes versions d'IE, avec jQuery vous n'avez pas à vous en préoccuper.

Il n'y a pas de «meilleure pratique» que vous devriez suivre, mais à moins que la taille soit un facteur très critique pour votre projet, je vous recommande fortement de considérer une bibliothèque Ajax. Il rend le développement beaucoup plus rapide et vous permet d'être sûr que votre Ajax sera compatible avec tous les navigateurs.

0

jQuery est idéal pour la manipulation DOM. Dans votre cas, cela peut être exagéré. Si vous êtes concerné par la taille de fichier, vous pouvez être intéressé par le téléchargement de style cafétéria de Mootool où vous ne choisissez que les pièces que vous voulez et il gère les dépendances. Vous voulez la section Demande.

outils Moo: http://mootools.net/core

Exemple: http://davidwalsh.name/basic-ajax-requests-mootools

+0

mootools a l'air sympa mais il se cache derrière la base xmlhttprequest en termes de taille. –

+0

MooTools est également hébergé par Google Libraries (ce qui signifie qu'il est déjà mis en cache pour de nombreuses personnes) et offre un excellent support JSON et Ajax pour les navigateurs. – zombat

0

Je recommanderais d'utiliser jQuery pour deux raisons. La première raison est parce qu'elle fournit une couche d'abstraction javascript à coder.jQuery prend en charge tous les principaux navigateurs (si ce n'est tous les navigateurs). Vous n'avez donc pas besoin de vous soucier autant de la compatibilité entre navigateurs ni des vérifications de navigateurs.

Deuxièmement - jQuery fournit des appels de liaison simples pour faire vos demandes ajax (charge $() (URL), etc.)

Troisième (que je trouve le plus utile) - jQuery (comme Mootools et prototype) définir la en-tête de la requête ajax à "X-Requested-With" qui vous permet de tester si une requête est une requête ajax ou non. Cela permet une intégration facile de javascript (Javascript non intrusif).

De plus - une fois que vous allez jQuery vous ne reviendrez jamais.

2

Ce numéro est ici, pourquoi réinventer la roue. Comme d'autres personnes l'ont noté, les bibliothèques fournissent une couche d'abstraction sur des choses telles que les caprices du navigateur, etc.

Il est presque certain que tout code personnalisé que vous écrivez contiendra probablement des bogues. Pourquoi s'embêter quand vous pouvez avoir l'avantage d'utiliser du code qui a l'avantage supplémentaire d'être testé et largement utilisé dans la nature. Laissez une bibliothèque faire votre travail et laissez-vous plus de temps pour coder la logique métier personnalisée de votre application.

+2

Bien que je sois à 100% d'accord pour ne pas réinventer la roue pendant le codage, j'aime toujours jeter une citation amusante quand j'entends cette phrase. "Si personne n'a jamais réinventé la roue, nous utiliserions encore des roues en pierre." : D – zombat

0

Désolé pour mon anglais, à mon avis, vous devez apprendre et connaître Jquery pour l'application de client ajax simple ou complexe ou dom manuplation, vous pouvez faire appel dom et ajax facile avec jquery.

Vous le savez déjà, vous pouvez déjà faire un appel ajax avec des fonctions javascript pur. How to Make AJAX Requests With Raw javascript, cet article ont deux parties.

Sinon, lors de la requête ajax sur la page, vous devez vérifier les données reçues et vous devez énumérer les données reçues lorsque vous avez des données complexes (je veux dire des données de collecte ou de tableau). À ce stade, vous verrez le pouvoir de Jquery, sur la manipulation, la manipulation des données reçues.

Je vous assure, quand vous travaillerez sur des données légèrement complexes, vous vous tournerez vers une bibliothèque pour créer facilement quelque chose sur vos pages. Jquery vous donnera plus que XMLHttpRequest de Javascript.

penser dernier, vous pouvez mettre votre référence de script sur code.google.com comme celui-ci

<script type="text/javascript" 
src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"> 
</script> 

Avec ce style que vous utilisez la capacité de mise en cache de Google et de la bande passante de votre application AllWays tenir à jour.

Ecrire moins, faire plus ...

+0

il existe des versions plus récentes que 1.2.6 de jQuery disponible hébergé par google –

0

D'accord, je vais vous donner quelques raisons pour lesquelles JQuery est la WTG (Way To Go) quand il vient à l'Ajax

  1. XMLHttpRequest sont mises en œuvre différemment pour différents navigateurs et vous devrez écrire vos propres fonctions d'écoute.
  2. Si vous faites une application non triviale, la quantité de code que vous écrivez en travaillant avec JQuery sera beaucoup plus faible que le code que vous écrivez pour travailler avec Javascript. Cela permet non seulement de réduire le temps de développement, mais aussi de réduire le temps d'exécution.
  3. JQuery facilite les manipulations DOM et CSS. Sans vous avez la chance d'un bon gars en enfer pour atteindre la même fonctionnalité dans 3 fois plus de temps.

Si vous êtes prêt à passer de JQuery, vous pourriez aussi bien rejeter ASP.Net/PHP et écrire des passerelles CGI pour une meilleure performance :)