Cet article présente principalement l'écriture du composant ajax léger 01 - par rapport à diverses méthodes d'implémentation sur la plateforme de formulaire Web. Les amis dans le besoin peuvent s'y référer
Avant-propos
Asp. .net WebForm et Asp.net MVC (MVC en abrégé) sont tous deux des frameworks de développement Web basés sur Asp.net. L'une d'elles est que MVC accorde plus d'attention à l'essence de http, tandis que WebForm essaie. pour protéger http. Cela fournit un grand nombre de contrôles serveur et de mécanismes ViewState, permettant aux développeurs de programmer sur la base du modèle d'événement, comme le développement d'applications Windows Form. Les deux ont leurs propres avantages, inconvénients et scénarios applicables, mais MVC est désormais le premier choix pour de nombreux développeurs Asp.net.
WebForm est basé sur Asp.net. Asp.net offre une évolutivité suffisante. Nous pouvons également les utiliser pour écrire des frameworks de type MVC sous WebForm. En ce qui concerne WebForm, beaucoup de gens penseront aux contrôles serveur (contrôles glisser !!!). En fait, ce n'est pas le cas. Nous pouvons également ne pas utiliser du tout les contrôles serveur et nous concentrer sur le HTML comme MVC. Si WebForm souhaite abandonner les contrôles du serveur et se concentrer sur le HTML, il doit d'abord supprimer la balise
. Ce formulaire de serveur runat est la base de son mécanisme PostBack. Puisque nous revenons à html+css+js, cela signifie que beaucoup de choses doivent être implémentées par nous-mêmes, comme la gestion des requêtes Ajax. Contrairement à MVC, la conception initiale de WebForm utilise les contrôles serveur comme composant principal. Si vous ne l'utilisez pas, vous ne pouvez utiliser que son extensibilité pour y parvenir.Cette série vise à implémenter un composant ajax léger basé sur la plateforme WebForm, qui est principalement divisée en trois parties :
1. Présentation de diverses méthodes d'implémentation sous WebForm.
2. Analysez les composants ajaxpro.
3. Écrivez votre propre composant ajax.
1. Introduction à Ajax
Asynchrone nous permet de demander ou de soumettre des données au serveur sans actualiser la page entière. Pour les pages complexes, il est évidemment inefficace de recharger la page entière juste pour demander un peu de données. Ajax est conçu pour résoudre ce problème. Le cœur d'ajax est l'objet XmlHttpRequest, via lequel les requêtes sont soumises au serveur sous forme de texte. Après XmlHttpRequest2.0, la soumission de données binaires est également prise en charge.
Sécurité Ajax : pour des raisons de sécurité, Ajax est limité par la politique de même origine ; c'est-à-dire que seules les demandes pour le même domaine et le même port sont accessibles, et les demandes inter-domaines seront rejetées. Bien entendu, les exigences nécessitent parfois l'envoi de requêtes entre domaines. Les méthodes de traitement inter-domaines couramment utilisées incluent CORS (partage de ressources entre domaines) et JSONP (JSON paramétrique).
Format d'interaction de données Ajax : Bien que l'objet principal Ajax XmlHttpRequest comporte le mot "XML", le format d'échange de données entre le client et le serveur ne se limite pas au XML. Par exemple, le format json est désormais plus souvent utilisé. .
L'Ajax a aussi des défauts. Par exemple, la prise en charge des moteurs de recherche n'est pas très bonne ; elle viole parfois l'intention initiale du positionnement des ressources URL.
2. Utilisation d'ajax sous la plateforme Asp.net MVC
Dans MVC, il est très pratique pour ajax d'appeler des méthodes en arrière-plan. il suffit de spécifier l’action. Nommez-la simplement.
Code front-end :
<body> <h1>index</h1> <input type="button" value="GetData" onclick="getData()" /> <span id="result"></span> </body> <script type="text/javascript"> function getData() { $.get("GetData", function (data) { $("#result").text(data); }); } </script>
Code back-end :
public class AjaxController : Controller { public ActionResult GetData() { if(Request.IsAjaxRequest()) { return Content("data"); } return View(); } }
3. Utilisation d'ajax sous la plateforme WebForm
3.1 Basé sur un package de contrôle de serveur ou des composants tiers
Ceci est basé sur des contrôles de serveur, tels que la boîte à outils ajax, ou des composants comme FineUI. Le front-end Web est toujours composé de html+css+js, mais la question est de savoir comment le générer. Nous pouvons écrire les plug-ins natifs nous-mêmes ou utiliser des plug-ins front-end ; ceux basés sur les contrôles du serveur sont générés en arrière-plan et sont généralement moins efficaces. Le composant serveur générera une série de proxys au premier plan. L'essence est toujours la même, mais le contrôle encapsule ce processus et ne nous oblige pas à l'écrire nous-mêmes. Le modèle basé sur des contrôles ou des composants tiers est très utile dans certains systèmes de gestion. Le nombre de visites n'est pas très important et il peut être développé rapidement.
3.2 Basé sur l'interface ICallbackEventHandler
.net fournit l'interface ICallbackEventHandler pour traiter les demandes de rappel. Cette interface doit utiliser ClientScriptManager pour générer des scripts proxy au premier plan pour l'envoi et la réception de requêtes, la balise