2008-11-05 3 views
1

Каков наилучший инструмент/практика для включения истории браузера для веб-сайтов Flash (или AJAX)? Я думаю, установившейся практикой является создание и чтения хэш-дополнение к URL, какИстория браузера для Flash (или AJAX)

http://example.com/#id=1 

Я отдаю себе отчет в Flex менеджера, но было интересно, если есть какие-нибудь хорошие альтернативы, чтобы рассмотреть. Также будет интересоваться общим решением AJAX или лучшей практикой.

ответ

0

Это будет немного круговым, но в настоящее время я использую среду dojo для этого. Есть dojo.back, который был очень полезен, когда мой пользовательский интерфейс был в основном JS/HTML. Теперь, когда я пошел на гибкость для большей мощности, жидкой анимации и стабильности браузера, единственное, что мне нужно было использовать, - это обратный URL.

У FlexBuilder, похоже, есть собственная история браузера в проектах по умолчанию.

Кроме того, в Cookbook Flex 3 есть рецепт для использования mx.managers.HistoryManager для создания собственного пользовательского управления историей. У меня есть планы, чтобы попытаться когда-нибудь удалить нашу зависимость от dojo.back, но еще не успел.

4

SWFAddress был широко использован и протестирован. Это делает его почти тривиальным (учитывая, что вы планируете заранее) для обработки deeplinking во Flash. Он предоставляет библиотеку JS и AS, которые работают вместе и делают весь процесс довольно надежным. Вы хотите посмотреть на что-то вроде RSH для AJAX.

0

Я закатила собственные решения, которые были ультра-простой, как это:

(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» события, чтобы реагировать соответствующим образом на основе того, что новый значение есть. Подход работает в супер простых случаях.

+0

интересный. Можете ли вы разместить демо? – pixeline 2010-02-12 21:11:11

Смежные вопросы