HTML5路由和PJAX

简介: 了解过的两种局部刷新页面的技术,不同开发框架下技术使用略有不同,不过都是基于 history.pushStatePJAXjquery-pjax pushState + ajax = pjaxjquery-pjaxpushState浏览器兼容性PS: 看兼容性可以知道,pjax只支持 IE 10和更高版本,因为老版本的IE不支持hist

了解过的两种局部刷新页面的技术,不同开发框架下技术使用略有不同,不过都是基于 history.pushState

PJAX

jquery-pjax

pushState + ajax = pjax

pjax

jquery-pjax

pushState浏览器兼容性

PS: 看兼容性可以知道,pjax只支持 IE 10和更高版本,因为老版本的IE不支持history.pushState

供参考: PJAX的实现与应用

HTML路由模式

angularjs

$locationProvider.html5Mode(true); //主动启用 HTML5 模式的路由

ui.router 默认要兼容不支持 history.pushState 的浏览器,如 IE 8,要获得类似的能力,就要借助 hash 的 change 事件

如下这篇文章还OK,抄录一下分享给大家:

AngularJs的url有两种模式:hash标签模式和html5模式

hash标签模式

hash标签模式是基于锚点定位的内部链接机制,在URL加上#,然后再在#后面加上hash标签,根据不同的标签做定位,这个不需要服务器端提供支持。例如

http://www.example.com/#user

html5mode

html5模式则直接使用跟”真实”的url一样,如上面的路径,在html5模式下

http://www.example.com/user

html5模式的url分两种访问方式

在浏览器直接输入这个路径访问,浏览器端会向服务器端请求加载页面。

在angular应用内访问html5模式url,angular应用在客户端直接路由到对应的视图,不需要重新加载页面。

在html5模式下,angular使用了html5的pushState API 来改变浏览器的url而不用重新加载页面。

html5mode需要对客户端和服务器端做设置

客户端配置

设置$locationProvider.html5Mode为true启用html5模式。

angular.module('app').config(function($locationProvider) {
    $locationProvider.html5Mode(true);
});

在index.html文件的标签下添加

<head>
  <base href="/">
  ...
</head>

这是让angular知道应用的根路径是什么,如果应用的根路径是http://www.example.com/app,那么base设置为

<base href="/app/">

最后页面用的url需要符合html模式,即#xxx,改为/xxx

服务端设置

用户直接在浏览器访问html5模式的url时,url有可能不存在,这时需要在服务器对访问的url做处理。如果访问的url为404,这时需要把url重定向到index

nginx配置

location / {
    root /path/to/app;
    try_files $uri index.html;
}
目录
相关文章
|
2月前
|
移动开发 前端开发 API
React路由和HTML5 History API有什么区别
【8月更文挑战第11天】React路由和HTML5 History API有什么区别
37 1
|
前端开发 JavaScript 开发者
HackerNews02-根据不同路由响应不同的 HTML 页面|学习笔记
快速学习 HackerNews02-根据不同路由响应不同的 HTML 页面
115 0
HackerNews02-根据不同路由响应不同的 HTML 页面|学习笔记
|
前端开发 JavaScript 开发者
HackerNews02-根据不同路由响应不同的HTML页面|学习笔记
快速学习 HackerNews02-根据不同路由响应不同的HTML页面
149 0
HackerNews02-根据不同路由响应不同的HTML页面|学习笔记
html+css实战22-综合案例-跳转路由
html+css实战22-综合案例-跳转路由
96 0
html+css实战23-综合路由-跳转其他页面
html+css实战23-综合路由-跳转其他页面
231 0
|
29天前
|
XML 前端开发 JavaScript
Html:CSS介绍
Html:CSS介绍
45 1
|
29天前
|
前端开发
Html:CSS的书写位置
Html:CSS的书写位置
24 0
|
24天前
|
前端开发 JavaScript 搜索推荐
打造个人博客网站:从零开始的HTML和CSS之旅
【9月更文挑战第32天】在这个数字化的时代,拥有一个个人博客不仅是展示自我的平台,也是技术交流的桥梁。本文将引导初学者理解并实现一个简单的个人博客网站的搭建,涵盖HTML的基础结构、CSS样式的美化技巧以及如何将两者结合来制作一个完整的网页。通过这篇文章,你将学会如何从零开始构建自己的网络空间,并在互联网世界留下你的足迹。
|
25天前
|
前端开发 JavaScript 搜索推荐
打造个人博客网站:从零开始的HTML与CSS之旅
【9月更文挑战第31天】在这个数字时代,拥有一个个人博客网站是展示自我、分享知识和连接世界的重要方式。本文将引导你通过简单的HTML和CSS知识,一步步构建起你的在线空间。无论你是编程新手还是希望通过实践加深理解,这篇文章都将是你的理想指南。我们将探索基本概念,实现页面布局,并点缀以个性化样式,最终将静态页面转变为动态交互式网站。准备好了吗?让我们开始吧!
|
28天前
|
前端开发 JavaScript
HTML+JavaScript+CSS DIY 分隔条splitter
HTML+JavaScript+CSS DIY 分隔条splitter