过去我开发了大型extjs单页应用程序。许多用户因无法使用Back或Fwd按钮或重新加载页面而感到沮丧。我还想警告用户他们是否在没有完成工作流程的情况下离开页面,并使用户能够直接访问特定视图。
对于下一个应用程序,我正在考虑使用Codeigniter php MVC框架。有可能与此example类似。我一直在想着导航。如果我为每个视图加载ExtJs,这是一个显着的减速。 如何最好地接近这个?
答案 0 :(得分:3)
查看Ext.History类(Ext4上的Ext.util.History)。有了它,您可以注册侦听器以更改哈希:
Ext.History.on('change', function( token ) {
console.log('token changed to: ', token);
});
Ext.History单例包括用于从客户端代码中触发导航的forward()和back()方法。
通过仅更改URL的哈希部分,浏览器保持在同一页面上,从而无需重新加载Ext库。
这将如何与您的PHP框架集成我不能说。我不熟悉CodeIgniter,你的示例链接进入死页。
另外,请注意一下使用History的警告,在Ext3下,至少它可能会给你带来更新浏览器的问题。如果是这种情况,另一种方法是使用'hashchange'浏览器事件编写您自己的类历史记录解决方案,如this answer所示。