This article mainly introduces the writing of lightweight ajax component 01-compared with various implementation methods on the webform platform. Friends in need can refer to the following
Preface
Asp.net WebForm and Asp.net MVC (referred to as MVC) are both web development frameworks based on Asp.net. There are big differences between the two. One of them is that MVC pays more attention to the essence of http, while WebForm tries to shield http. This provides a large number of server controls and ViewState mechanisms, allowing developers to program based on the event model like developing Windows Form applications. Both have their own pros, cons and applicable scenarios, but MVC is now the first choice for many Asp.net developers.
WebForm is based on Asp.net. Asp.net provides sufficient scalability. We can also use these to write a framework like MVC under WebForm. We will write this again when we have the opportunity. When it comes to WebForm, many people will think of server controls (drag controls!!!). In fact, this is not the case. We can also not use server controls at all and focus on html like MVC. If WebForm wants to abandon server controls and focus on HTML, it must first remove the
tag. This runat server form is the basis of its PostBack mechanism. Since we are going back to html css js, it means that many things have to be implemented by ourselves, such as handling Ajax requests. Unlike MVC, the initial design of WebForm uses server controls as the main component. If you do not use it, you can only use its extensibility to achieve it.This series is to implement a lightweight ajax component based on the WebForm platform, which is mainly divided into three parts:
1. Introducing various implementation methods under WebForm.
2. Analyze ajaxpro components.
3. Write your own ajax component.
1. Introduction to Ajax
Asynchronous allows us to request or submit data to the server without refreshing the entire page. For complex pages, it is obviously inefficient to reload the entire page just to request a little data. Ajax is designed to solve this problem. The core of ajax is the XmlHttpRequest object, through which requests are submitted to the server in the form of text. After XmlHttpRequest2.0, submission of binary data is also supported.
Ajax security: For security reasons, Ajax is restricted by the same-origin policy; that is, it can only access requests from the same domain and the same port, and cross-domain requests will be rejected. Of course, sometimes requirements require sending requests across domains. Commonly used cross-domain processing methods include CORS (cross-domain resource sharing) and JSONP (parametric JSON).
Ajax data interaction format: Although the Ajax core object XmlHttpRequest has the word "XML", the data exchange format between the client and the server is not limited to xml. For example, json format is now used more often.
Ajax also has shortcomings. For example, the support for search engines is not very good; sometimes it violates the original intention of url resource positioning.
2. Using ajax under the Asp.net MVC platform
In MVC, it is very convenient for ajax to call background methods. You only need to specify the Action. Just name it.
Front-end code:
<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>
Back-end code:
public class AjaxController : Controller { public ActionResult GetData() { if(Request.IsAjaxRequest()) { return Content("data"); } return View(); } }
3. Using ajax under the WebForm platform
3.1 Based on server control package or third-party components
This is based on the server Controls, such as the ajax toolkit, or components like FineUI. The web front-end is always composed of html css js, but the question is how to generate it. We can write the native ones ourselves or use some front-end plug-ins; those based on server controls are generated in the background and are usually less efficient. The server component will generate a series of proxies in the foreground. The essence is still the same, but the control encapsulates this process and does not require us to write it ourselves. The model based on controls or third-party components is quite useful in some management systems. The number of visits is not very large and it can be developed quickly.
3.2 Based on the ICallbackEventHandler interface
.net provides the ICallbackEventHandler interface for processing callback requests. This interface needs to use ClientScriptManager to generate proxy scripts in the foreground for sending and receiving requests, so the