Heim  >  Artikel  >  Web-Frontend  >  Neues Repository auf GitHub, WebFormsJS ist da!

Neues Repository auf GitHub, WebFormsJS ist da!

WBOY
WBOYOriginal
2024-07-19 14:58:28807Durchsuche

New Repository on GitHub, WebFormsJS is Here!

WebFormsJS ist eine JavaScript-Bibliothek, die die Infrastruktur für die Interaktion mit Websteuerelementen im CodeBehind-Framework bereitstellt; Dadurch können Entwickler HTML-Tags einfach serverseitig verwalten.

Eine neue Architektur für effiziente Webentwicklung

Webentwicklung war schon immer ein komplexer und zeitaufwändiger Prozess mit mehreren Komplexitätsebenen und zahlreichen zu verwaltenden Technologien. WebFormsJS ist eine neue JavaScript-Bibliothek, die diesen Prozess vereinfacht, indem sie eine robuste Infrastruktur für die Interaktion mit Websteuerelementen (HTML-Tags) auf der Serverseite bereitstellt, sodass sich Entwickler auf Serverantworten konzentrieren können, ohne sich um das Front-End kümmern zu müssen.

Durch die Verwendung von WebFormsJS entfällt die Notwendigkeit einer Front-End-Entwicklung weitgehend. Sie müssen keine Frontend-Frameworks wie React, Angular und Vue mehr verwenden und müssen nicht einmal mit JavaScript im Frontend arbeiten. Bitte beachten Sie, dass die gleichzeitige Verwendung von WebFormsJS mit Frontend-Frameworks oder JavaScript Ihrem Projekt auch viele Vorteile bringt.

Bitte sehen Sie sich das folgende Beispiel an:

Dies ist eine HTML-Seite, die eine Seite vom Server auffordert, ihren Inhalt in ein div-Tag mit der ID MyTag einzufügen.

Einfaches AJAX mit JavaScript

<!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>

Gemäß den oben genannten Codes haben wir eine HTML-Seite, in der es eine JavaScript-Methode gibt, um die Antwort einer Seite in AJAX-Form zu empfangen.

Das Ausführen der JavaScript-Methode führt dazu, dass drei Dinge passieren:
1- Den Inhalt einer Seite vom Server finden und ihn einem Teil der HTML-Seite hinzufügen
2- Ändern der Hintergrundfarbe
3- Für eines der Tags von rechts nach links festlegen

Hinweis: Die Optionen 2 und 3 werden auf der Clientseite durchgeführt. Wenn wir sie vom Server ändern möchten, müssen wir den Server noch zweimal anfordern oder alle drei Optionen mit einer Anfrage in einem komplizierten Prozess abrufen .

Um WebFormsJS zu unterstützen, haben wir die obige HTML-Seite wie folgt umgeschrieben.

Verwendung von 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>

Wir haben die Datei „web-forms.js“ über den Link unten kopiert und im Pfad „script/web-forms.js“ gespeichert.

https://github.com/elanatframework/Web_forms/blob/elanat_framework/web-forms.js

Wenn wir die Seite vom Server anfordern, sendet der Server die folgende Antwort.

Serverantwort

[web-forms]
stMyTag=Server response text
bc<body>=#409354
ta<h2>=right

Wir vom Elanat-Team nennen diese Struktur Action Controls. Aktionssteuerelemente sind von WebFormsJS empfangene Codes, die im INI-Format empfangen werden. WebFormsJS erkennt automatisch, ob die Serverantwort über Aktionskontrollen verfügt oder nicht. Wenn die Antwort des Servers auf der Struktur einer INI-Datei basiert, die mit [web-forms] beginnt, verarbeitet sie die Aktionssteuerungen, andernfalls ersetzt sie die Antwort des Servers in Form von AJAX auf der Seite.

  • Zeile 1: stMyTag=Server-Antworttext Hier sind die ersten beiden Zeichen st, was bedeutet, dass der Text festgelegt wird, und dann wird angegeben, dass er auf ein Tag mit der ID MyTag angewendet werden soll, und danach das Gleichheitszeichen (=) da ist der empfangene Text.
  • Zeile 2: bc=#409354 Hier sind die ersten beiden Zeichen bc, was die Hintergrundfarbe bedeutet, und dann wird angegeben, dass sie auf das Body-Tag angewendet werden soll, und nach dem Gleichheitszeichen (= ) gibt es den Farbwert.
  • Zeile 3: ta

    =right Hier sind die ersten beiden Zeichen ta, was Textausrichtung bedeutet, und dann wird bestimmt, dass es auf ein Tag namens li angewendet wird, und nach dem Gleichheitszeichen (=) Es gibt einen Wert von rechts, der von rechts nach links bedeutet.

WebFormsJS auf der Serverseite

Wenn Sie ein flexibles Back-End-Framework verwenden, können Sie ganz einfach einen Prozess zum Generieren von Aktionskontrollen erstellen; Andernfalls können Sie die Eigentümer oder Entwickler bitten, den Kern des Back-End-Frameworks neu zu schreiben oder ein neues Modul zur Unterstützung von WebFormsJS zu erstellen.

Ein Beispiel für die Verwendung von WebFormsJS im CodeBehind-Framework

Wir erstellen eine neue Ansicht, in der es eine Eingabe vom Typ „Auswählen“ gibt; Wir möchten neue Optionswerte in „select“ hinzufügen, also fügen wir zwei Textfeldeingaben für den Namen und den Wert der neuen Option in die Ansicht ein und erstellen außerdem eine Kontrollkästcheneingabe dafür, ob die neue Option in dieser Ansicht ausgewählt ist oder nicht .

Ansicht (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>

Wir aktivieren zunächst das IgnoreViewAndModel-Attribut; Dadurch verhindern wir, dass die Ansichtsseite zurückkehrt. Dann erstellen wir eine Instanz der WebForms-Klasse und fügen der Dropdown-Liste entsprechend den über die Form-Methode gesendeten Werten einen neuen Wert hinzu. Schließlich müssen wir die erstellte Instanz der WebForms-Klasse in der Control-Methode platzieren.

Controller (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.

Advantages of WebFormsJS over using JavaScript and AJAX:

  • Simplified code: WebFormsJS provides a simpler and more concise way of interacting with web controls on the server-side, reducing the complexity of code and making it easier to maintain.
  • Automatic form serialization: WebFormsJS automatically serializes form data, eliminating the need to manually serialize and deserialize data using techniques like JSON or XML.
  • Progress bar: WebFormsJS includes a progress bar that displays the amount of data sent on the screen, providing a more engaging user experience.
  • Server-Side processing: WebFormsJS allows for server-side processing of form data, enabling more complex logic and validation to be performed on the server-side.
  • Support for multiple controls: WebFormsJS supports multiple controls, including checkboxes, radio buttons, select boxes, and text inputs, making it easy to interact with multiple controls on the server-side.
  • Customizable: WebFormsJS provides customizable options, such as the ability to set the progress bar display, error messages, and other settings.
  • Robust infrastructure: WebFormsJS provides a robust infrastructure for interacting with web controls on the server-side, making it suitable for large-scale applications.

In contrast, using JavaScript and AJAX:

  • Requires manual serialization and deserialization of form data
  • Does not provide a progress bar or error handling
  • Does not support multiple controls or server-side processing
  • Is more verbose and complex to use

Comparison with Frontend Frameworks

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.

Conclusion

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.

Related links

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

Das obige ist der detaillierte Inhalt vonNeues Repository auf GitHub, WebFormsJS ist da!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn