Javascript 动态构建网页(AJAX)中的后退/下一步按钮
我的问题是关于在AJAX(动态)网页上使用“后退”和“下一步”按钮 我自己想出的解决方案是:Javascript 动态构建网页(AJAX)中的后退/下一步按钮,javascript,ajax,jquery,browser,Javascript,Ajax,Jquery,Browser,我的问题是关于在AJAX(动态)网页上使用“后退”和“下一步”按钮 我自己想出的解决方案是: setInterval(function(){ if (location.hash != hash) { hash = location.hash; app.url = window.location.href.toString().replace('htt
setInterval(function(){
if (location.hash != hash)
{
hash = location.hash;
app.url = window.location.href.toString().replace('http://xxxxx.nl/xxxx/#!/','')
app.handleURL();
}
}, 500);
此函数每隔0.5秒读取url(哈希),并将其与上次存储的url(哈希)进行比较。如果url已更改(按下后退/下一步),它将运行handleUrl(),它将运行更多函数来动态构建我的页面
问题是,这种方式可以工作,但当我单击html[A]元素或以其他方式(javascript)更改url时,由于setInterval()的原因,该内容将被加载两次。。。功能。
我如何构建HTML/Javascript,使我的内容总是加载一次
- 一次当我推回/下一次
- 当我点击一个HTML元素/使用Javascript函数时 运行时
我从谷歌搜索了一个解决方案,请帮忙 您不需要计时器来检查它。只需使用事件,并在调用事件时触发AJAX调用。但是,8以下的IE版本不支持此事件,因此如果您需要IE支持,您的方法似乎很好
另外,对于
a
元素调用它们两次也是没有意义的,因为没有理由仅仅因为hash是使用a
元素更改的,就需要间隔调用AJAX加载程序两次。您可能在元素上附加了一个事件监听器,使其加载AJAX内容,这是不需要的,因为您正在检测哈希中的任何更改,无论它是如何更改的。我建议为此使用一个库。这将是棘手的,使您自己的解决方案。看看这些:
仅当您准备放弃IE6和IE7时。IE7必须得到支持:(,)但是onhashchange是我会记住的东西。它也将不再工作。因为我已经构建了javascript: