博客
关于我
强烈建议你试试无所不能的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

你可能感兴趣的文章
分享几个好用的工具,有效提升工作效率
查看>>
论北京北漂的家人们
查看>>
delphi 检查用户输入必须是汉字串
查看>>
思科交换机和路由器设备实现DHCP功能
查看>>
MongoDB安装与操作大全
查看>>
人我的是好有是的好sula
查看>>
编译工程时报java:[1,0] illegal character: \65279问题排查与解决过
查看>>
RHEL6子接口及双网卡绑定配置
查看>>
常见系统故障排查
查看>>
正则验证手机号是否合法
查看>>
linux 下Crontab不执行
查看>>
《Git权威指南》读书笔记 第四章 git初始化
查看>>
《Head first HTML与CSS 第二版》读书笔记 第九章 盒模型
查看>>
《Python面向对象……》之目录
查看>>
集群入门简析及LB下LVS详解
查看>>
Linux与GPT
查看>>
管理或技术
查看>>
分配到弱属性;对象将在赋值之后释放
查看>>
java作用域public ,private ,protected 及不写时的区别
查看>>
until循环语句
查看>>