gpt4 book ai didi

javascript - 支持 AJAX 历史按钮而不会发疯

转载 作者:行者123 更新时间:2023-11-29 15:51:56 26 4
gpt4 key购买 nike

我多次使用 jQuery Address 来支持小型异步应用程序中的后退按钮。

当所有 AJAX 请求都做同样的事情(即异步请求页面并用请求替换 HTML 元素)时,实现起来会很容易。

当 AJAX 请求可能做不同的事情时,假设在一种情况下打开叠加层,在另一种情况下更改整个页面的页面内容,事情就变得一团糟。

我最终得到了一些非常糟糕的代码,因为我必须通过很多 if 语句来分析哈希值 (#/somepage/someotherpage)。

我总是对自己重复:必须有更好的方法来做到这一点。

有没有人遇到过同样的问题,可以提出解决方案吗?

如果没有,请查看我的想法并告诉我您的想法。

我的想法是创建一个模拟 window.history 对象的对象,但仅限于 AJAX 历史记录,我们称它为“ajaxhistory”。每次异步请求页面时,都会发生这样的事情:

ajaxhistory[i] = {
url: 'here the url',
type: 'overlay'
otherusefulinfo: 'whatever'
}
i++

所以,例如:

if(moving back or forward){
if(currenturl == ajaxhistory[i-1].url){
// i'm going back
// i'm able to know what type of action i should take thanks to
// ajaxhistory[i-1].type and ajaxhistory[i-1].otherusefulinfo
}
}

我喜欢这个想法,因为它会使我的代码更易于阅读、维护和更改。假设我想添加新功能......我可以添加一个新类型并使用它,而通常我应该编辑很多糟糕的 if 语句。

你怎么看?从性能的 Angular 来看会不会有问题?

最佳答案

查看 Ben Alman 的这项工作

http://benalman.com/projects/jquery-bbq-plugin/

他有一个插件可以帮助支持后退按钮。

希望这是有用的。

鲍勃

关于javascript - 支持 AJAX 历史按钮而不会发疯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4361177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com