在开发项目时碰到一个问题:加载界面会调用别人的接口,来修改界面上的信息,但调用该接口会导致界面刷新,从而出现无限刷新的情况。
于是,我在需要修改界面信息时,给地址栏指定一个参数,如果存在这个参数,那么我就取消地址栏的参数,并调用接口修改界面信息,此时调用接口导致的刷新不会再重复的调用这个接口了。
var sup=GetQueryString("S");
if(sup=='1')
{
var stateObject = {};
var title = "修改地址";
var newUrl = '/view/fontface4.html';
//修改地址栏中的地址
history.pushState(stateObject, title, newUrl);
Refresh();//调用接口
}
第一个参数,是一个Json对象,在储存有关当前URl的任意历史信息。
第二个参数,title 就相当于传递一个文档的标题;
第三个参数是用来传递新的URL. 你将看到浏览器的地址栏发生变化而当前页面并没刷新。
第二个参数和第三个参数比较好理解,第一个参数目前不是很明白它的用法,有机会可以深究一下。