awesome-repositories.com
博客
MCP
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
browserstate avatar

browserstate/history.js

0
View on GitHub↗
10,659 星标·1,307 分支·JavaScript·6 次浏览browserstate.github.com/history.js/demo↗

History.js

history.js is a cross-browser URL state manager and HTML5 History API polyfill. It functions as a single page application router that manages browser URL and history state consistently across HTML5 and HTML4 browsers, enabling navigation without triggering full page reloads.

The project provides a JavaScript framework adapter that integrates history management with the event systems of jQuery, MooTools, and Prototype. It ensures compatibility through a fallback mechanism that switches to hash-based navigation and hashbang URLs when the native HTML5 History API is unavailable.

The system covers broad capabilities including state management for associating and serializing data objects to history entries, asynchronous URL updates for AJAX state bookmarking, and session history navigation. It also includes support for crawler indexability, search history integration, and the ability to maintain continuous media playback during state changes.

Features

  • Single-Page Applications - Manages browser URL and history state to enable seamless navigation and bookmarkable states in single-page applications without full page reloads.
  • Browser History Persistence - Associates and serializes arbitrary JavaScript objects and titles to browser history entries for retrieval during session navigation.
  • URL State Serialization - Encodes application state and titles into the URL hash or state object for shareable and persistent views.
  • Client-Side Routers - Functions as a navigation manager that updates the browser URL and session state without triggering full page reloads.
  • AJAX Page Loaders - Fetches HTML fragments or JSON responses asynchronously to update page content without full reloads.
  • Stateful Bookmarking - Creates unique, shareable URLs for asynchronous content loads by synchronizing the address bar with AJAX updates.
  • Browser API Normalizers - Abstracts inconsistent browser history implementations into a single, unified API for pushState, replaceState, and popState.
  • Browser History Management - Synchronizes application state with browser history by standardizing the history interface across different browsers.
  • Hash-Based Fallbacks - Automatically switches to hashchange events and hashbang URLs when the HTML5 History API is unavailable.
  • State Data Association - Attaches arbitrary data objects to each history entry and retrieves them when the entry becomes active.
  • Legacy Browser Support - Provides fallback mechanisms using hashbang URLs to ensure navigation functionality in legacy browsers lacking native HTML5 History API support.
  • Feature Detection Polyfills - Implements runtime utilities to detect browser history capabilities and apply hash-based fallbacks for consistent behavior.
  • History API Polyfills - Normalizes the HTML5 History API across browsers, providing pushState, replaceState, and popState support with automatic hash-based fallbacks.
  • History Stack Controllers - Programmatically manipulates the URL and session state to enable SPA navigation without page reloads.
  • State Serializers - Encodes arbitrary JavaScript objects and titles into the URL hash for state persistence in legacy browsers.
  • URL Normalization Utilities - Standardizes request paths by transparently converting between hash, hashbang, and clean URL formats.
  • URL State Management - Synchronizes application state with the browser URL consistently across different browser versions to manage single-page application state.
  • Event Dispatchers - Uses an event-driven architecture to decouple application state transitions from native browser navigation events.
  • Browser History Navigations - Provides programmatic control to move the user forward or backward through the browser's session history.
  • Browser Event Listeners - Provides mechanisms for capturing and responding to browser-level navigation and anchor change events.
  • Application Event Dispatching - Routes high-level statechange events to distinguish application transitions from ordinary anchor navigation.
  • Browser Session Management - Synchronizes URL changes and session state across browser implementations to ensure consistent navigation.
  • Crawler-Friendly Rendering - Delivers full HTML for direct URLs and partial content for AJAX requests to ensure dynamic content is indexable by search engines.
  • Cross-Framework Adapters - Provides connectors that enable history management functionality across jQuery, MooTools, and Prototype frontend stacks.
  • Cross-Framework Integration Utilities - Provides a unified history management API that operates consistently across jQuery, MooTools, and Prototype environments.
  • Browser History API Updates - Handles hashbangs and history API updates uniformly to ensure consistent URL state across all browsers.
  • Event System Adapters - Integrates history management with the specific event systems of jQuery, MooTools, and Prototype.
  • Polyfills and Compatibility - Implementation of the History API.
  • 路由和链接(Routing And URLs) - Listed in the “路由和链接(Routing And URLs)” section of the Awesome Frontend awesome list.

Star 历史

browserstate/history.js 的 Star 历史图表browserstate/history.js 的 Star 历史图表

AI 搜索

探索更多 awesome 仓库

用简单的语言描述您的需求 —— AI 将根据相关性为您从数千个精选开源项目中进行排序。

Start searching with AI

常见问题解答

browserstate/history.js 是做什么的?

history.js is a cross-browser URL state manager and HTML5 History API polyfill. It functions as a single page application router that manages browser URL and history state consistently across HTML5 and HTML4 browsers, enabling navigation without triggering full page reloads.

browserstate/history.js 的主要功能有哪些?

browserstate/history.js 的主要功能包括:Single-Page Applications, Browser History Persistence, URL State Serialization, Client-Side Routers, AJAX Page Loaders, Stateful Bookmarking, Browser API Normalizers, Browser History Management。

browserstate/history.js 有哪些开源替代品?

browserstate/history.js 的开源替代品包括: 47ng/nuqs — nuqs is a TypeScript library for managing React component state through the browser's URL query string. It provides a… afarkas/html5shiv — html5shiv is a JavaScript compatibility polyfill and legacy browser shim that enables the use of HTML5 sectioning… es-shims/es5-shim — es5-shim is an ECMAScript 5 polyfill library and standard library shim. It serves as a JavaScript compatibility layer… leaverou/prefixfree — prefixfree is a runtime CSS processor and polyfill library designed to ensure cross-browser visual consistency. It… day8/re-frame — re-frame is a functional framework for building single-page applications in ClojureScript. It provides a centralized,… codeception/codeception — Codeception is a full-stack testing framework for PHP applications that provides a unified interface for unit,…

History.js 的开源替代方案

相似的开源项目,按与 History.js 的功能重合度排序。
  • 47ng/nuqs47ng 的头像

    47ng/nuqs

    10,591在 GitHub 上查看↗

    nuqs is a TypeScript library for managing React component state through the browser's URL query string. It provides a type-safe hook-based approach that synchronizes component state with the address bar, enabling shareable and bookmarkable application states. The library handles parsing and serializing URL query parameters into typed JavaScript values, supporting integers, floats, booleans, dates, and custom types with bijectivity verification. The library distinguishes itself through its comprehensive approach to URL state management, combining batch URL updates that merge multiple parameter

    TypeScriptquery-paramsreactsearch-params
    在 GitHub 上查看↗10,591
  • afarkas/html5shivaFarkas 的头像

    aFarkas/html5shiv

    9,849在 GitHub 上查看↗

    html5shiv is a JavaScript compatibility polyfill and legacy browser shim that enables the use of HTML5 sectioning elements in outdated versions of Internet Explorer. It provides a compatibility layer that ensures modern HTML5 tags are recognized and rendered correctly by overriding element creation methods. The library ensures that HTML5 sectioning elements contain their child elements in old web engines by applying basic styles. It specifically addresses layout and styling discrepancies for both screen and print media to prevent layout collapse. The project includes a programmable configura

    JavaScript
    在 GitHub 上查看↗9,849
  • es-shims/es5-shimes-shims 的头像

    es-shims/es5-shim

    7,086在 GitHub 上查看↗

    es5-shim is an ECMAScript 5 polyfill library and standard library shim. It serves as a JavaScript compatibility layer that adds missing ES5 standard library methods and language features to legacy JavaScript engines. The project functions by implementing the ECMAScript 5 specification for non-compliant engines to ensure consistent behavior and prevent runtime errors. It provides a bridge for older browser environments, allowing modern JavaScript code to execute in legacy environments. The library covers cross-browser API standardization and polyfill management. It specifically handles the em

    JavaScriptecmascriptes5javascript
    在 GitHub 上查看↗7,086
  • leaverou/prefixfreeLeaVerou 的头像

    LeaVerou/prefixfree

    3,792在 GitHub 上查看↗

    prefixfree is a runtime CSS processor and polyfill library designed to ensure cross-browser visual consistency. It functions as a client-side script that automatically detects browser requirements and injects necessary vendor prefixes into CSS properties and values at runtime. The project utilizes a system that intercepts stylesheets and modifies style rules in browser memory. It includes a DOM mutation style monitor that observes the document tree for new elements to apply prefixing logic to dynamic content and attributes. The library provides polyfilling for modern CSS standards in legacy

    JavaScript
    在 GitHub 上查看↗3,792
查看 History.js 的所有 30 个替代方案→