FazBrowse Wikipedia Viewer | Main Page |
Search Wikipedia:
|
Viewing: https://en.wikipedia.org/wiki/JavaScript_framework

Web framework

Contents
    Model–view–controller (MVC)
    Capabilities and trade-offs in modern frameworks
Features
    Web template system
    AJAX
References

A web framework (WF), web application framework (WAF), or web development framework is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and deploy web applications on the World Wide Web. Web frameworks aim to automate the overhead associated with common activities performed in web development. For example, many web frameworks provide libraries for database access, templating frameworks, and session management, and they often promote code reuse. Although they often target development of dynamic web sites, they are also applicable to static websites.

Although the vast majority of languages for creating dynamic web pages have libraries to help with common tasks, web applications often require specific libraries for particular tasks, such as creating HTML (for example, Jakarta Faces).

Model–view–controller (MVC)

edit

Server-side page changes typically require that the page be refreshed, but allow any language to be used and more computing power to be utilized. Client-side changes allow the page to be updated in small chunks which feels like a desktop application, but are limited to JavaScript and run in the user's browser, which may have limited computing power. Some mix of the two is typically used. Applications which make heavy use of JavaScript and only refresh parts of the page, are called single-page applications and typically make use of a client-side JavaScript web framework to organize the code.

Examples include Backbone.js, AngularJS, Angular, Ember.js, React, jQuery UI, Svelte, and Vue.js.

Capabilities and trade-offs in modern frameworks

edit

JavaScript-based web application frameworks, such as React and Vue, provide extensive capabilities but come with associated trade-offs. These frameworks often extend or enhance features available through native web technologies, such as routing, component-based development, and state management. While native web standards, including Web Components, modern JavaScript APIs like Fetch and ES Modules, and browser capabilities like Shadow DOM, have advanced significantly, frameworks remain widely used for their ability to enhance developer productivity, offer structured patterns for large-scale applications, simplify handling edge cases, and provide tools for performance optimization.

Frameworks can introduce abstraction layers that may contribute to performance overhead, larger bundle sizes, and increased complexity. Modern frameworks, such as React 18 and Vue 3, address these challenges with features like concurrent rendering, tree-shaking, and selective hydration. While these advancements improve rendering efficiency and resource management, their benefits depend on the specific application and implementation context. Lightweight frameworks, such as Svelte and Preact, take different architectural approaches, with Svelte eliminating the virtual DOM entirely in favor of compiling components to efficient JavaScript code, and Preact offering a minimal, compatible alternative to React. Framework choice depends on an application’s requirements, including the team’s expertise, performance goals, and development priorities.

A newer category of web frameworks, including enhance.dev, Astro, and Fresh, leverages native web standards while minimizing abstractions and development tooling. These solutions emphasize progressive enhancement, server-side rendering, and optimizing performance. Astro renders static HTML by default while hydrating only interactive parts. Fresh focuses on server-side rendering with zero runtime overhead. Enhance.dev prioritizes progressive enhancement patterns using Web Components. While these tools reduce reliance on client-side JavaScript by shifting logic to build-time or server-side execution, they still use JavaScript where necessary for interactivity. This approach makes them particularly suitable for performance-critical and content-focused applications.

Features

edit

Frameworks typically set the control flow of a program and allow the user of the framework to "hook into" that flow by exposing various events. This "inversion of control" design pattern is considered to be a defining principle of a framework, and benefits the code by enforcing a common flow for a team which everyone can customize in similar ways. For example, some popular microframeworks, such as Ruby's Sinatra (which inspired Express.js), allow for "middleware" hooks prior to and after HTTP requests. These middleware functions can be anything, and allow the user to define logging, authentication and session management, and redirecting.

Web template system

edit

AJAX

edit

A number of newer Web 2.0 RESTful frameworks are now providing resource-oriented architecture (ROA) infrastructure for building collections of resources in a sort of Semantic Web ontology, based on concepts from Resource Description Framework (RDF).

References

edit
"CGI: Common Gateway Interface". Archived from the original on 2009-04-09.
  • ↑ Microsoft. "Three-tiered distribution". Retrieved 2011-09-19.
  • ↑ IBM. "Using Client Access Express in a three tier environment". Retrieved 2011-09-19.
  • ↑ Arokia. "3-Tier Web Architecture". Retrieved 2011-09-19.{{cite web}}: CS1 maint: deprecated archival service (link)
  • ↑ "Getting Started With Web Frameworks". Wired Magazine. Retrieved 2018-04-02.
  • ↑ Uzayr, Sufyan bin; Cloud, Nicholas; Ambler, Tim (November 2019). JavaScript Frameworks for Modern Web Development: The Essential Frameworks, Libraries, and Tools to Learn Right Now. Apress. ISBN 978-1484249949.
  • 1 2 3 "Enhance". GitHub.
  • ↑ Fowler, Martin. "bliki: InversionOfControl". martinfowler.com. Retrieved 2016-03-06.
  • ↑ "Active Record Transactions". Ruby on Rails. Retrieved March 20, 2021.
  • ↑

  • View original on Wikipedia | Back | FazBrowse Home