我的页面到目前为止加载了一次,然后它就是那里的所有AJAX,宝贝:D.显然,后退/前进/重新加载/历史/书签会严重破坏它.我正在研究一些解决方案(我正在关注jQuery插件,也就是烧烤或地址),我很好奇它们是如何实现的.
所有我非常感兴趣的是后退/前进功能,因为这是一个真正的"应用程序",可供5-6人使用,以帮助协调他们的工作,不会形成或形成"网络文档".我试图阻止一般用户习惯的窗口操作习惯破坏我的应用程序.
到目前为止,我还没有遇到过多个状态可以进入另一个状态的情况,因此我的返回功能实现起来相当简单.但是,没有使用"返回"功能实现返回功能,只需通过"取消","返回"和其他按钮.
但我离题了...到目前为止,我真的很喜欢一个简单的URL片段标识符系统的概念,以允许向后/向前功能,我真的想避免在问题上抛出其他人的代码(这是我的第一个webapp和我'我试图尽可能地痛苦地做所有事情以便学习).
好吧,没有更多的离题......我从Content with Style的文章中得到了印象,我可以使用计时器来轮询我的窗口URL并触发相应的AJAX操作.
我有兴趣知道的是:
如果修复 AJAX 后退/前进损坏的常见插件使用类似的方法,如果没有,他们使用什么方法?
他们同时使用轮询和hashchange
事件。
有什么优点。和缺点。轮询方法以及任何替代方法。
我可以实现这些方法的简单版本来实现我的目标吗?(比如 150 行以下)。
如果您仅为 5 人编写应用程序,不妨强制他们使用支持该hashchange
事件的现代浏览器。然后你只需 2-3 行就可以编写哈希更改检测:)
window.onhashchange = function(event) {
var url = event.newURL;
// do something with new url
};
Run Code Online (Sandbox Code Playgroud)
自己做值得吗?如果我实施这个,我会学到任何有价值的东西吗?我的(理论上)更简单的版本真的会比综合插件少得多的代码吗?
是的,见上文。您可以用很少的代码行自己编写一个更好的实现。例如,Rails 使用路由器将请求分派到控制器。路线定义如下:
“/signup”->(UsersController,新) “/user/(id)/photos” -> (PhotosController, 索引)
您可以定义自己的路由 API 来在 JavaScript 中注册路由及其处理函数/对象,并做比现有插件更酷的事情,只是受限于您的想象力:)
归档时间: |
|
查看次数: |
223 次 |
最近记录: |