Extjs-为选项卡生成唯一的url

Extjs-为选项卡生成唯一的url,extjs,Extjs,我知道ExtJS使用AJAX进行所有服务器端通信,理想情况下每个应用程序只有一个页面。但我正在探索为ExtJS选项卡生成一个唯一url的可能性,然后用户可以从地址栏中复制该url供以后使用(传统的web应用程序方法-使页面成为可书签页面)。如果有人做过类似的事情,请告诉我。您可以使用“哈希”。这是URL中“#”字符后面的部分 如果您只需要在页面加载时对哈希作出反应以支持书签功能,那么您可以通过以下方式摆脱: Ext.onReady(function() { var tabPanel =

我知道ExtJS使用AJAX进行所有服务器端通信,理想情况下每个应用程序只有一个页面。但我正在探索为ExtJS选项卡生成一个唯一url的可能性,然后用户可以从地址栏中复制该url供以后使用(传统的web应用程序方法-使页面成为可书签页面)。如果有人做过类似的事情,请告诉我。

您可以使用“哈希”。这是URL中“#”字符后面的部分

如果您只需要在页面加载时对哈希作出反应以支持书签功能,那么您可以通过以下方式摆脱:

Ext.onReady(function() {
    var tabPanel = new Ext.TabPanel({
        // Configure for use in viewport as needed.
        listeners: {
            tabchange: function( tabPanel, tab ) {
                window.location.hash = '#'+ tab.itemId;
            }
        }
    });

    var token = window.location.hash.substr(1);

    if ( token ) {
        var tab = tabPanel.get(token);

        if ( ! tab ) {
            // Create tab or error as necessary.
            tab = new Ext.Panel({
                itemId: token,
                title: 'Tab: '+ token
            });

            tabPanel.add(tab);
        }

        tabPanel.setActiveTab(tab);
    }
});
您还可以选择更进一步,使用大多数浏览器的最新版本中支持的hashchange事件。这将允许您在页面完成加载后,对用户或编程方式更改的哈希作出反应:

if ( 'onhashchange' in window ) {
    window.onhashchange = function() {
        var token = window.location.hash.substr(1);
        // Handle tab creation and activation as above.
    }
}

值得注意的是,Ext.History singleton承诺提供与此类似的功能。但是,从ExtJS 3.3.1开始,它还没有得到hashchange事件的支持,而是完全依赖于轮询间隔和隐藏的iframe攻击。我对它在现代浏览器(尤其是IE浏览器)中的性能并不满意,直到我重写它,在可用的地方使用hashchange。

我浏览了ExtJS API文档网站,发现它具有生成直接链接的酷功能。例如:是指向将在选项卡中打开的容器类文档的直接链接。这似乎是一个很好的解决我的要求。ExtJS是否为此提供了现成的解决方案?这是ExtJS中实现这一点的唯一方法吗?没有“散列”能做到吗?