jquery load()方法可以帮我们把页面重复的文档部分,比如标题栏和底部信息部分。我们可以提取到一个模板html,然后通过load方法动态加载到每个页面。在使用的过程中遇到几个问题
load方法会自动忽略掉head、body、script标签
1、如果想加载head和body里面的文档内容,可以通过将内容包裹在一个div中,然后将其加载过来
2、script部分我们可以通过load方法的回调函数动态创建加载进来
3、不建议动态加载样式表,否则会出现页面闪现的问题,即页面刷新时,出现1秒钟没渲染样式的画面,然后再恢复正常画面(原因同下)
动态加载后会出现滚动条偏移的问题
刷新页面时。滚动条偏移。
一般情况下,我们会把script文件放在文档body最后面,避免js阻塞浏览器渲染,这就导致我们会在页面渲染完后再执行我们的load方法,动态加载的页面也就是最后才加上去的,滚动条一开始就是固定在最上面的,动态加载header部分后,滚动条会偏下,并没有回到顶部
解决
在load方法的回调函数里面加入$(document).scrollTop(0);
或者利用script标签的async属性,让js脚本异步加载,然后即可将script放在头部