9
votes

Y a-t-il une raison de préférer jquery.ajax à asp.net updatepanel?

Si je développe une application ASP.NET, peut-il y avoir des cas où je devrais oublier Mme Ajax UpdatePanels et préférez JQuery.ajax pour mettre à jour une partie de ma page?

merci


0 commentaires

5 Réponses :


1
votes

Si vous êtes à l'aise avec l'ensemble du schéma de publication ASP.NET, un avantage de coller à de tels contrôles est que (la plupart du temps), ils vous protègent des effects latéraux des post-packs etc. Mais dans ce cas particulier, il s'agit d'un coût: vous avez un message complet pour chaque demande AJAX (qui inclura l'état d'affichage), qui peut être une performance frappée par rapport à une demande AJAX droite, cf:

http://Geekswithblogs.net/dlussier/archive/2007 /09/06/115188.aspx

Je ne suis pas non plus sûr de savoir si elle traite des demandes bien croisées (JSONP et telles), ce sont donc deux mises en garde à considérer.


0 commentaires

2
votes

Bien sûr, IMHO Vous devriez préférer JQuery sur les panneaux de mise à jour Standard ASP.NET. La raison (principale) est la performance, lorsque vous postez des données à l'aide de jQuery.ajax, vous ne postez que ce que le serveur doit comprendre le poste. Ceci est généralement 1 à 2 paramètres de texte.

Lorsque vous effectuez le même message à l'aide d'un panneau de mise à jour, la page entière va se promener dans les coulisses sur le serveur, puis la page complète revient et la zone est rendue.

Si vous utilisez JQuery, vous pouvez créer une page ASHX sur le serveur, celle-ci ne dispose pas du chargement de la page et du cycle de vie d'une forme Web régulière et il est également très léger.


2 commentaires

J'ai une question dans mah Mind ... Et si JavaScript est désactivé dans le navigateur client?


@Amit - alors cela postera normalement, vous pouvez obtenir un comportement comme celui-ci avec UpdatePanels ou jQuery :)



10
votes

Oui, en fait, vous devriez presque toujours préférez utiliser votre propre fonctionnalité Ajax (ou JQuery) avant.

Il y a beaucoup de surcharge associé au MS AJAX UpdatePanel (il effectue un envoi complet, puis met à jour l'élément (s) qui a changé sur la page), donc les fonctionnalités agréables dans un Site Web activé AJAX - Responsives, continuité, etc. - sont presque entièrement perdus (IMHO). Vous avez très peu de contrôle de ce qui est réellement soumis sur le câble, de ce qui est retourné et de la manière dont elle est traitée au retour au client.

Avec jQuery Ajax, d'autre part, vous obtenez un contrôle complet et instantané, vous pouvez faire des demandes de poids léger (ou lourdes) à votre guise, et permet de la faire face - l'API n'est en aucune manière plus difficile à utiliser. que celui de l'emballage de mise à jour.

Avec cela à l'esprit, il y a toujours des scénarios lorsque l'UpdatePanel va bien, voire mieux. Surtout dans les webforms ASP.NET, il peut être délicat de renvoyer une seule partie d'une page d'une manière qui se dégrade gracieusement si l'utilisateur ne peut pas utiliser JavaScript et pour le style de développement «glisser-goutte» rapide, il y a vraiment Néanmoins, JQuery ne peut rivaliser. (Si vous aimez le développement de glisser-déposer ou non une discussion entièrement autre ...)


5 commentaires

Bien que je suis tout à fait d'accord avec le sentiment et que vous préférez également JQuery, la déclaration "juste impossible d'avoir plus d'un point de vente dans une page" est complètement mal, c'est très facile à faire et commun s'entraîner.


Appuyé! J'ai travaillé sur des projets lorsque la décision a été prise d'utiliser UpdatePanel plutôt que la normale Ajax et la performance a tendance à être atroce. Dans un cas particulier, il s'agissait d'une combinaison d'un document DataGridView + UpdatePanel qui a assez bien amené l'application à ses genoux et l'a rendu surtout inutile. Nous avons fini par redessiner cette pièce de l'application pour éviter d'utiliser un panneau Update. J'irais jusqu'à dire qu'il n'ya pas de bon scénario pour utiliser UpdatePanel sur une autre manière pour récupérer vos données via AJAX.


@Nick - Ensuite, le problème avec plusieurs panneaux de mise à jour aurait pu être résolu depuis ma dernière fois. Comme je l'ai dit, c'était il y a quelques années. (J'ai été complètement accroché dès que j'ai vu le framework MVC ...: P)


Cela a été possible et fait exactement de la même manière depuis leur disponibilité, de sorte que cette déclaration était jamais vrai. C'est une déclaration invalide, quel que soit le contexte de temps. Vous devez le supprimer, que vous ne les utilisiez pas correctement, pas une incapacité inhérente de la technologie. Pour être clair je méprise UpdatePanels , mais pour donner des informations erronées sur toute plate-forme n'est pas un bon moyen de faire un argument.


@Nick: Là-bas - enlevé. Mais je suis sûr que lorsque je faisais cela (devais être tombé de 2007), j'ai regardé partout où je pouvais sur Internet pour une solution pour utiliser plusieurs panneaux de mise à jour sur une page, et tout ce que j'ai essayé la chose que je voulais faire ( Cela aurait été facile en tant que tarte aux pommes avec jQuery) était sinon tout à fait, puis darn proche de l'impossible. Cela aurait peut-être été un cas étrange Edge, mais c'était le panneau de mise à jour et il n'y avait personne qui savait comment le faire alors.



2
votes

Je dirais que vous devriez certainement favoriser JQuery Ajax sur l'ASP.NET AJAX UpdatePanel. Si vous regardez le ASP.NET AJAX Site , il n'y a vraiment pas de mention d'ASP.NET Ajax et / ou le UpdatePanel ... Mais il y a beaucoup de mention de JQuery. En fait, il semble que Microsoft favorise des développeurs ASP.NET à l'aide de JQuery en tant que cadre JavaScript CLIENT SHAVASCRIPT sur UPDATE UPDATEMENT et les contrôles ASP.NET AJAX associés.

Ils fournissent toujours des liens vers la boîte à outils de contrôle Ajax, mais avec tant de plug-ins jQuery sur là, pourquoi auriez-vous besoin de la boîte à outils?

updatepanel est plus lent et groupeur - aller avec jQuery Ajax.


0 commentaires

1
votes

Comme d'autres personnes ont déclaré, MS-Ajax et UpdatePalels fonctionnent mal - parfois au point d'être inutilisable. Comme d'autres l'ont souligné, les rappels Ajax qui devraient être petits et légers, sont lourds car ils incluent également le spectacle complet.

En plus de ces problèmes, j'ai trouvé d'autres inconvénients à MS-Ajax:

  1. Le JavaScript généré par MS comprend beaucoup de frais généraux. Ils ont construit dans beaucoup de vérification de type et de vérification variable, avec l'intention de rendre leur JavaScript plus Typeafe, je suppose. Cette générale ralentit considérablement le traitement du navigateur de manière significative - en particulier lorsque ces fonctions JavaScript générées sont appelées à plusieurs reprises / récursives (comme c'est le cas avec des contrôles tiers).
  2. Le code ASPX-derrière devient beaucoup plus complexe et plus difficile à entretenir, car le même cycle de vie de la page est exécuté pour le chargement initial de la page, ainsi que chaque rappel AJAX. Comme tout code complexe, cela peut être surmonté par des développeurs qualifiés et de bons commentaires de code - mais c'est néanmoins un inconvénient à considérer.

    Une note finale: l'un des avantages pour MS-Ajax & UpdatePanels est, vous pouvez vous éloigner avec 90% JavaScript-ignorant et les coder encore. "Traditionnel" Ajax implique beaucoup plus de codage javascript que MS-Ajax.


0 commentaires