博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端 页面无刷新方案二
阅读量:6842 次
发布时间:2019-06-26

本文共 2192 字,大约阅读时间需要 7 分钟。

开始方案二   用html5     history.pushState(state,null,url);  (IE9及以下版本不支持)

/** * HTML5 history and ajax */ $(function(){    var ajax,        currentState;    $('li a').unbind().bind('click',function(e){        e.preventDefault();        var target = e.target,            url = $(target).attr('href');        !$(this).hasClass('current') && $(this).addClass('current').siblings().removeClass("current");        if(ajax == undefined) {            currentState = {                url: document.location.href,                title: document.title,                html: $('.content').html()            };        }        ajax = $.ajax({                type:'GET',                url: url,                dataType:'html',                success: function(html){                                    var state = {                        url: url,                        title: document.title,                        html: $('.content').html()                    };                    history.pushState(state,null,url);                    $('.content').html(html)                }        });            }); });
View Code

首页代码  index.htm

    New Document   
View Code

 

拦截url hash并实现页面分发,主要的js

View Code

再加上几个测试页面

测试页面1

View Code

测试页面2 page2.htm,里面加了一个跳转,因为我们已经拦截a标签的跳转,所以我们也能实现hash跳转

View Code

测试页面3  page3.htm   page3.css   引入了一个外链css文件,这里要重点说明一下。我们在这里引入了css3,页面顺利加载了page3.css文件,page3.htm 的样式得以改变,

紧接着我们再回到page2.htm.但是刚才的page3.css的样式没影响到page2.htm。这里是个要注意的问题了,说明样式文件是会被自动移除的,这和页面的样式表重新渲染相符。

View Code
.test3{display: block; width: 170px;height: 200px;background-color: #fb9876}

测试页面4  page4.htm。   这里直接进来可以顺利触发fun4的方法

View Code

测试页面5  page5.htm      这里可以顺利执行document.body.onload方法    且执行本页的 $(function(){})方法体

View Code

测试页面6   page6.htm   page6.js     

View Code
View Code

最后你会发现,文件不管是外链js   还是内页js,  都会被存放在 index.htm。这可能会带来一些不好跟踪的问题

 

 

在做这个时候的时候可以脑补一下 htm页面渲染过程css和js的加载流程。

也顺便发现了一下其他该注意的问题

1、inline-table   inline-block   4px间距问题

2、ajax读取本地文件设置问题

 

转载于:https://www.cnblogs.com/liubl/p/5292999.html

你可能感兴趣的文章
[POI2012]Squarks
查看>>
Code Signal_练习题_All Longest Strings
查看>>
(转)Redis
查看>>
ARTS打卡计划第三周-Review
查看>>
delphi 知道excel选中的单元格的行号
查看>>
Vue.js中data,props和computed数据
查看>>
软件不能用Surface Pro触控笔 微软这有解决办法
查看>>
contentsize ,ios 7和 ios7之前的 有点差别,
查看>>
Tomcat
查看>>
try catch 怎么写?
查看>>
iOS学习笔记(十五)——数据库操作(SQLite)
查看>>
Android spinner 样式及其使用详解
查看>>
ftps加密服务器
查看>>
[置顶] 批处理命令
查看>>
谈谈不换行空格
查看>>
ubuntu 13.04 nginx.conf 配置详解
查看>>
Android调用系统的打电话和发短信界面(1.将消息内容带过去2.实现群发)
查看>>
如何在内网安装compass
查看>>
TF-IDF理解及其Java实现
查看>>
使用升级版的 Bootstrap typeahead v1.2.2
查看>>