WebFormsJS 是一个 JavaScript 库,它提供了与 CodeBehind 框架中的 Web 控件交互的基础设施;这使得开发人员可以轻松地在服务器端管理 HTML 标签。
Web 开发一直是一个复杂且耗时的过程,具有多层复杂性和大量需要管理的技术。 WebFormsJS 是一个新的 JavaScript 库,它通过提供与服务器端 Web 控件(HTML 标签)交互的强大基础架构来简化此过程,使开发人员能够专注于服务器响应,而无需担心前端。
使用WebFormsJS很大程度上消除了前端开发的需要。你将不再需要使用 React、Angular 和 Vue 等前端框架,甚至不需要在前端使用 JavaScript。请注意,同时使用 WebFormsJS 和前端框架或 JavaScript 也会给您的项目带来许多优势。
请参阅以下示例:
这是一个 HTML 页面,它请求服务器的页面将其内容添加到 ID 为 MyTag 的 div 标签内。
使用 JavaScript 的简单 AJAX
<!DOCTYPE html> <html> <head> <script> function loadDoc() { const xhttp = new XMLHttpRequest(); xhttp.onload = function() { document.getElementById("MyTag").innerHTML = this.responseText; document.body.style.backgroundColor = "#409354"; document.getElementsByTagName("h2")[0].setAttribute("align","right"); } xhttp.open("GET", "/AjaxPage.aspx"); xhttp.send(); } </script> </head> <body> <div id="MyTag"></div> <div> <h2>Request from server</h2> <button type="button" onclick="loadDoc()">Set Content</button> </div> </body> </html>
根据上面的代码,我们有一个 HTML 页面,其中有一个 JavaScript 方法来接收 AJAX 形式的页面响应。
执行 JavaScript 方法会导致发生三件事:
1- 从服务器查找页面内容并将其添加到 HTML 页面的一部分
2-更改背景颜色
3- 将其中一个标签从右向左设置
注意:选项2和3是在客户端完成的,如果我们想从服务器更改它们,我们需要向服务器请求两次或者我们必须在一个复杂的过程中通过一个请求检索所有三个选项.
为了支持WebFormsJS,我们重写了上面的HTML页面,如下。
使用 WebFormsJS
<!DOCTYPE html> <html> <head> <script type="text/javascript" src="/script/web-forms.js"></script> </head> <body> <form method="GET" action="/AjaxPage.aspx"> <div id="MyTag"></div> <div> <h2>Request from server</h2> <input name="MyButton" type="submit" value="Set Content" /> </div> </form> </body> </html>
我们从下面的链接复制了 web-forms.js 文件并将其保存在 script/web-forms.js 路径中。
https://github.com/elanatframework/Web_forms/blob/elanat_framework/web-forms.js
当我们向服务器请求页面时,服务器会发送以下响应。
服务器响应
[web-forms] stMyTag=Server response text bc<body>=#409354 ta<h2>=right
Elanat 团队将这种结构称为“动作控制”。操作控件是以 INI 格式接收的 WebFormsJS 接收代码。 WebFormsJS 自动检测服务器响应是否具有操作控件。如果服务器的响应是基于以[web-forms]开头的INI文件的结构,它将处理Action Controls,否则它将在页面上以AJAX的形式替换服务器的响应。
如果您使用灵活的后端框架,您可以轻松创建生成Action Controls的流程;否则,你可以要求业主或开发人员重写后端框架的核心或创建一个新的模块来支持WebFormsJS。
在 CodeBehind 框架中使用 WebFormsJS 的示例
我们创建一个新的View,其中有一个选择类型的输入;我们想要在select中添加新的选项值,因此我们在View中放置了两个文本框输入用于新选项的名称和值,并且我们还在该View中创建了一个用于是否选择新选项的复选框输入.
查看(Form.aspx)
@page @controller FormController <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Send Form Data</title> <script type="text/javascript" src="/script/web-forms.js"></script> </head> <body> <form method="post" action="/Form.aspx"> <label for="txt_SelectName">Select name</label> <input name="txt_SelectName" id="txt_SelectName" type="text" /> <br> <label for="txt_SelectValue">Select value</label> <input name="txt_SelectValue" id="txt_SelectValue" type="text" /> <br> <label for="cbx_SelectIsSelected">Select Is Selected</label> <input name="cbx_SelectIsSelected" id="cbx_SelectIsSelected" type="checkbox" /> <br> <label for="ddlst_Select">Select</label> <select name="ddlst_Select" id="ddlst_Select"> <option value="1">One 1</option> <option value="2">Two 2</option> <option value="3">Three 3</option> <option value="4">Four 4</option> <option value="5">Five 5</option> </select> <br> <input name="btn_Button" type="submit" value="Click to send data" /> </form> </body> </html>
我们首先激活IgnoreViewAndModel属性;通过这样做,我们可以防止返回“查看”页面。然后我们创建一个WebForms类的实例,并根据通过Form方法发送的值在下拉列表中添加一个新值。最后,我们必须将创建的 WebForms 类实例放置在 Control 方法中。
控制器(FormController)
public partial class FormController : CodeBehindController { public void PageLoad(HttpContext context) { if (!string.IsNullOrEmpty(context.Request.Form["btn_Button"])) btn_Button_Click(context); } private void btn_Button_Click(HttpContext context) { IgnoreViewAndModel = true; Random rand = new Random(); string RandomColor = "#" + rand.Next(16).ToString("X") + rand.Next(16).ToString("X") + rand.Next(16).ToString("X") + rand.Next(16).ToString("X") + rand.Next(16).ToString("X") + rand.Next(16).ToString("X"); WebForms Form = new WebForms(); string SelectValue = context.Request.Form["txt_SelectValue"]; string SelectName = context.Request.Form["txt_SelectName"]; bool SelectIsChecked = context.Request.Form["cbx_SelectIsSelected"] == "on"; Form.AddOptionTag(InputPlace.Id("ddlst_Select"), SelectName, SelectValue, SelectIsChecked); Form.SetBackgroundColor(InputPlace.Tag("body"), RandomColor); Control(Form); } }
Each time the button is clicked, new values are added to the drop-down list and the background changes to a random color.
This is a simple example of CodeBehind framework interaction with WebFormsJS.
These features will be available in version 2.9 of the CodeBehind framework. In the coming days, version 2.9 of the CodeBehind framework will be released.
In contrast, using JavaScript and AJAX:
Frontend frameworks like React, Angular, and Vue have gained popularity in recent years for their ability to create dynamic and interactive user interfaces. However, compared to WebFormsJS, they have some key differences:
Complexity: Frontend frameworks can be complex to set up and require a deep understanding of JavaScript and the framework itself. In contrast, WebFormsJS simplifies web development by allowing developers to focus on server-side interactions and control the HTML elements.
Performance: While frontend frameworks offer high performance and efficiency, WebFormsJS also boasts high performance and low bandwidth consumption. It efficiently manages server responses and controls HTML tags, reducing the complexity of web development.
Customization: Frontend frameworks offer extensive customization options and flexibility to create unique user interfaces. WebFormsJS also provides customization options, such as postback, progress bar, and script extraction, but focuses more on server-side interaction.
Action Controls: WebFormsJS introduces the concept of Action Controls, which are received in INI format to define specific actions for HTML tags. This provides a clear and structured way to handle server responses and modify controls on the page.
WebFormsJS is a powerful JavaScript library that simplifies web development by providing a robust infrastructure for interacting with web controls on the server-side. Its advanced system, low bandwidth consumption, and customization options make it an attractive choice for developers looking to build efficient and scalable web applications.
WebFormsJS on GitHub:
https://github.com/elanatframework/Web_forms
CodeBehind on GitHub:
https://github.com/elanatframework/Code_behind
CodeBehind in NuGet:
https://www.nuget.org/packages/CodeBehind/
CodeBehind page:
https://elanat.net/page_content/code_behind
以上是GitHub 上的新存储库 WebFormsJS 就在这里!的详细内容。更多信息请关注PHP中文网其他相关文章!