Récemment, j'ai travaillé sur un projet qui repose fortement sur les appels AJAX. Dans le passé, la plupart de ces appels utilisaient leur propre page aspx pour poster par exemple. AJAXgetResults.aspx. Après avoir fait quelques recherches, j'ai vu quelques exemples en utilisant la fonction .ajax de jquery et webmethods dans le codebehind. Je suppose que ma question se résume à. Y a-t-il un gain ou une perte de performance en utilisant la méthode webmethod? Je suppose qu'il serait toujours aussi sécurisé que la page sur laquelle il est, non? Toutes les autres suggestions sont plus que bienvenues! Merci!Quelles sont les meilleures pratiques lors de l'utilisation de jquery pour les appels AJAX dans ASP.NET?
Répondre
Si votre application repose en grande partie sur AJAX (requêtes XHR plus généralement) Je regarderais dans WCF Le repos et le retour résultats dans JSON. Vous allez réduire la bande passante consommée et généralement obtenir une amélioration des performances, je trouve la sérialisation WCF et l'authentification largement supérieure à l'utilisation d'une page en tant que service, également. En général, vos performances devraient s'améliorer en changeant ces pages en services.
Je suppose que cela dépend du niveau de contrôle que vous voulez avoir sur ce qui se passe pendant l'appel AJAX. Webmethods fonctionnera certainement, mais ce que j'ai utilisé dans un projet récent est la création d'un gestionnaire .ASHX par fonctionnalité distincte que vous souhaitez exposer à vos appels AJAX. Vous avez toujours accès à toutes les variables de contexte telles que request, response, querystring, session, etc. et la logique est bien encapsulée loin de toutes les pages et vous n'obtenez pas non plus un traitement de page et un cycle de vie "normaux". améliorer les performances. Veillez simplement à définir vos niveaux de mise en cache, car les gestionnaires ASHX semblent très «susceptibles d'être mis en cache» par défaut.
Exemple, ashx pour récupérer tous les employés pour une certaine position et retourner les résultats au format JSON:
public class GetEmployeesForPosition : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/json";
context.Response.Clear();
context.Response.AddHeader("Pragma", "no-cache");
context.Response.AddHeader("Expires", "-1");
var position = new Entity.Model.Position { Code = context.Request.QueryString["code"] };
var language = new Language { Key = context.Request.QueryString["language"] };
var list = new EmployeeManager().GetForPosition(position, language);
var employeeMenuList = new List<KeyValuePair<string, string>>();
foreach (var emp in list)
{
var item = new KeyValuePair<string, string>(emp.Person.Number, emp.Person.DisplayName);
employeeMenuList.Add(item);
}
var json = JsonSerializer.ToJson(employeeMenuList);
context.Response.Write(json);
}
public bool IsReusable
{
get
{
return true;
}
}
}
- 1. Quelles sont les meilleures pratiques pour gérer les informations sensibles?
- 2. Quelles sont les meilleures pratiques OOoBasic?
- 3. Quelles sont les meilleures pratiques SOA/BPEL?
- 4. Quelles sont les meilleures pratiques pour les dépôts Kiln?
- 5. Quelles sont les meilleures pratiques pour les URL publiques «privées»?
- 6. Quelles sont les meilleures pratiques pour la diffusion d'images?
- 7. Quelles sont les meilleures pratiques pour l'écriture MVC App?
- 8. Quelles sont les meilleures pratiques pour empêcher le fluage SQL?
- 9. Quelles sont les meilleures pratiques pour surveiller DelayedJob?
- 10. Quelles sont les meilleures pratiques pour l'API Middleware?
- 11. Quelles sont les meilleures pratiques de développement GUI iPAD
- 12. Quelles sont les meilleures pratiques de jQuery en matière de méthodes pratiques Ajax et de traitement des erreurs?
- 13. Quelles sont les meilleures pratiques dans vos tests?
- 14. Meilleures pratiques pour les appels asynchrones dans MVP avec WinForms
- 15. nServiceBus et la sécurité: quelles sont les meilleures pratiques?
- 16. Quelles sont les meilleures pratiques pour la programmation fonctionnelle et l'interaction avec les bases de données?
- 17. MSBuild, solution VS2008 et CI - quelles sont les meilleures pratiques?
- 18. Structuremap et références, quelles sont les meilleures pratiques?
- 19. Quelles sont les meilleures pratiques pour ajouter dynamiquement du javascript dans une page asp.net?
- 20. Spring 3.0 et SOAP - Quelles sont les meilleures pratiques?
- 21. Quelles sont les meilleures pratiques pour l'écriture d'une couche DTO dans une application ASP.net d'entreprise?
- 22. Quelles sont certaines des meilleures pratiques Sharepoint?
- 23. Quelles sont vos meilleures pratiques CoreLocation?
- 24. Quelles sont les options et les meilleures pratiques pour la modélisation inspirée de PV3D
- 25. Quelles sont les meilleures pratiques lors de l'exportation par lot à partir d'une application suivant DDD
- 26. Quelles sont les meilleures pratiques pour gérer les données dans un nuage?
- 27. Quelles sont les meilleures pratiques pour basculer entre les fenêtres d'application dans Qt?
- 28. Quelles sont les meilleures pratiques pour inclure des paramètres tels qu'un accumulateur dans les fonctions?
- 29. Quelles sont les meilleures pratiques pour les E/S mobiles Snappy sur les connexions lentes?
- 30. Quelles sont les meilleures pratiques pour les autorisations sur les répertoires Apache-writable?
Edité avec un exemple. – Sam