문제

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'이벤트에 대한 이벤트 핸들러가 새 값이 무엇인지에 따라 응답하기 만하면됩니다. 접근 방식은 매우 간단한 경우에 작동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top