Flash(或AJAX)的浏览器历史记录
问题描述:
为Flash(或AJAX)网站启用浏览器历史记录的最佳工具/练习是什么? 我猜的一贯做法是设置和读取哈希除了URL像Flash(或AJAX)的浏览器历史记录
http://example.com/#id=1
我知道Flex的历史记录管理器的,但如果有需要考虑什么好的办法想知道。也会对一般的AJAX解决方案或最佳实践感兴趣。
答
这看起来有点迂回,但我目前正在使用dojo框架。当我的UI主要是JS/HTML时,有一个dojo.back非常有用。现在我已经为了获得更多的力量,流畅的动画和浏览器稳定性而进行了弯曲,我需要继续使用的唯一东西就是后面的URL。
FlexBuilder似乎在默认项目中拥有自己的浏览器历史记录。
另外,Flex 3 Cookbook有一个使用mx.managers.HistoryManager创建自己的自定义历史管理的菜谱。我有计划在某天试一试,以消除我们对dojo.back的依赖,但还没有时间。
答
SWFAddress已被广泛使用和测试。它使得它几乎微不足道(因为你提前计划)来处理Flash中的深层链接。它提供了一个JS和AS库,它们一起工作,使整个过程非常安全。你会想看看像RSH为AJAX的东西。
答
我滚我自己的解决方案,是超简单的是这样的:
(function() {
var oldHash, newHash;
function checkHash() {
// Grab the hash
newHash = document.location.hash;
// Check to see if it changed
if (oldHash != newHash) {
// Trigger a custom event if it changed,
// passing the old and new values as
// metadata on the event.
$(document).trigger('hash.changed', {
old: oldHash,
new: newHash
});
// Update the oldHash for the next check
oldHash = newHash;
}
}
// Poll the hash every 10 milliseconds.
// You might need to alter this time based
// on performance
window.setInterval(checkHash, 10);
})(jQuery);
然后你只需要到相应的回应基于什么新的有事件处理程序“hash.changed”事件价值是。这个方法在超级简单的情况下会起作用。
有趣。你可以在某个地方发布演示吗? – pixeline 2010-02-12 21:11:11