플래시 브라우저 기록 (또는 Ajax)
-
06-07-2019 - |
문제
Flash (또는 AJAX) 웹 사이트의 브라우저 기록을 활성화하는 가장 좋은 도구 / 실습은 무엇입니까? 확립 된 관행은 URL에 대한 해시 어드먼트를 설정하고 읽는 것입니다.
http://example.com/#id=1
Flex History Manager를 알고 있지만 고려해야 할 좋은 대안이 있는지 궁금합니다. 또한 일반적인 Ajax 솔루션 또는 모범 사례에 관심이 있습니다.
해결책
나는 사용했다 Swfadress 작은 물건을 위해.
다른 팁
SWFADDRESS 널리 사용되고 테스트되었습니다. 플래시에서 탈링을 처리하는 것이 거의 사소합니다 (미리 계획이 주어지면). JS와 라이브러리로서 함께 작동하고 전체 프로세스를 꽤 완벽하게 만듭니다. Ajax를 위해 RSH와 같은 것을보고 싶을 것입니다.
Ajax의 경우 정말 간단한 역사 중대하다.
이것은 약간의 원형 교차로처럼 보이지만 현재 Dojo 프레임 워크를 사용하고 있습니다. 내 UI가 대부분 JS/HTML 일 때 매우 유용한 dojo.back이 있습니다. 이제 더 많은 전력, 유체 애니메이션 및 브라우저 안정성을 위해 Flex에 갔기 때문에 계속 사용해야하는 유일한 것은 백 URL이었습니다.
FlexBuilder는 기본 프로젝트에서 자체 브라우저 기록을 가지고있는 것 같습니다.
또한 Flex 3 Cookbook에는 MX.Managers.historyManager를 사용하여 고유 한 사용자 정의 기록 관리를 만드는 레시피가 있습니다. 나는 언젠가 Dojo.back에 대한 우리의 의존도를 제거하기 위해 시도해 볼 계획이지만 아직 시간이 없었습니다.
나는 다음과 같이 매우 단순한 내 자신의 솔루션을 굴 렸습니다.
(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'이벤트에 대한 이벤트 핸들러가 새 값이 무엇인지에 따라 응답하기 만하면됩니다. 접근 방식은 매우 간단한 경우에 작동합니다.