Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态构建网页(AJAX)中的后退/下一步按钮_Javascript_Ajax_Jquery_Browser - Fatal编程技术网

Javascript 动态构建网页(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

我的问题是关于在AJAX(动态)网页上使用“后退”和“下一步”按钮

我自己想出的解决方案是:

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: