使用dojo / hash时如何处理浏览器刷新?

时间:2016-06-03 19:05:07

标签: javascript dojo

在单页面应用程序上,我的问题是我正在订阅hashchange事件以呈现内容(创建和销毁代表我的页面的小部件),但该函数仅在哈希实际更改时被触发,例如单击浏览器后退和前进按钮。

我的主要javascript文件总是第一次加载并且在刷新时包含以下

topic.subscribe("/dojo/hashchange", function(newhash){
    //set content based on hash
});

单击刷新时,它不会被触发,我留下一个空白页面(我所有的逻辑渲染页面都在我订阅的主题的匿名函数内)

1 个答案:

答案 0 :(得分:1)

您的订阅未在刷新时调用,因为哈希实际上没有更改。您正在订阅哈希更改,在页面加载后发生的更改。

使用这种订阅方法,事情可能会很快失控。你可能想看看使用路线。一些链接 -

https://developer.mozilla.org/en-US/docs/Web/Events/hashchange

https://dojotoolkit.org/documentation/tutorials/1.9/hash/

https://dojotoolkit.org/reference-guide/1.10/dojo/router.html

https://www.sitepen.com/blog/2014/06/18/dojo-faq-does-dojo-have-routing-like-backbone-and-embe/