문제

www.darknovagames.com에서 브라우저 기반 게임을 운영합니다. 최근에 저는 CSS로 사이트를 재구성하는 작업을 해왔으며 HTML 표준에 따라 모든 페이지가 확인하기 위해 모든 페이지를 확인하려고 노력했습니다.

나는 왼쪽 Ajax에 내비게이션 메뉴가있는이 아이디어를 사용하여 (매번 사용자를 별도의 페이지로 가져 가기보다는 제목과 Nav bar의 다시로드가 필요하지 않고) 그리고 나는 내가 그렇게한다면 아마도 브라우저에서 포워드/백 버튼을 분해 할 것임을 알고 있습니다. 내 질문은, 내가 계속해서 사이트를 ajax해야한다는 것입니다. 따라서 사용자가 사이트 내비게이션을 사용하여 게임을 재생하도록 요구하거나 현재 사이트를 유지하고 표준 하이퍼 링크 및 항해를 위해 사이트를 사용해야합니까?

내가 묻는 이유는 포럼 시스템을 사이트에 구축했기 때문에 포럼 내의 특정 주제에 링크하고 싶기 때문입니다.

나는 또한 제안에 열려 있습니다. 사이트의 본문 영역 만 다시로드하는 동시에 URL을 변경하여 사용자가 북마크 및 전진/후면 등을 변경하는 표준 (기존 프레임이없는) 방법이 있습니까? 그것은 잠재적으로 내 문제를 해결할 수 있습니다. 특정 질문에 대한 답이 아니라 여기서 최상의 솔루션을 요구합니다. ^_^

감사

도움이 되었습니까?

해결책

Ajax를 활성화하려면 사이트의 모든 중요한 페이지에 액세스 가능한 URL을 갖도록 비용을 지불하지 마십시오. 이것은 사람들이 사용할 수있는 항해 가능한 사이트의 중추입니다.

모든 기능을 AJAX 호출 및 콜백으로 삽질하면 기본적으로 사용자가 원하는 기능과 컨텐츠에 액세스하기 위해 단일 경로로 강요합니다. 이는 웹이 작동하는 방식에 완전히 반대합니다. 사람들은 주소 표시 줄과 뒤로 버튼에 의존합니다. 모든 링크를 무시하여 사이트가 본질적으로 AJAX를 통해서만 업데이트되는 단일 페이지 인 경우 사용자의 사이트를 탐색하고 필요한 것을 찾는 기능을 제한합니다. 또한 사용자가 찾은 것을 공유 할 수 없게됩니다 (요점의 일부입니까?).

사이트의 사용자의 정신지도에 대해 생각해보십시오. 그들이 홈페이지를 통해 들어온 것을 알고 있다면 무언가를 찾아 갔다가 게임 페이지에 착륙 한 다음 특정 게임을 시작했습니다. 즉, 사용자가 취한 4 개의 뚜렷한 행동 단위입니다. 그들은 각 페이지 각 페이지에 대해 몇 가지 작고 더 중요하지 않은 행동을했을 수도 있지만 이들은 주요 단위입니다. 뒤로 버튼을 클릭하면 들어온 경로를 통해 돌아갈 것으로 예상됩니다. AJAX 호출을 통해이 모든 페이지를로드하는 경우 사용자가 기대하는 것과 상반되는 기능이 실행되는 사이트를 제공합니다.

사이트를 모든 중요한 기능 (예 : 검색, 가정, 프로필, 게임으로 나눕니다. 사이트가 무엇인지에 따라 결정됩니다). 이 페이지에 링크 할 때 어디에서나 일반 링크와 정적 URL을 통해 수행하십시오.

Ajax는 괜찮습니다. 그러나 그것의 예술은 그것을 언제 사용 해야하는지, 언제 사용하지 않을 것인지 아는 것입니다. 위에서 스케치 한 모델을 유지하면 사용자가 감사 할 것입니다.

다른 팁

모든 것이 아니라 업데이트 해야하는 페이지의 일부에 Ajax를 사용하십시오. 이를 위해서는 템플릿을 사용해야합니다.

페이지의 다양한 상태 변경에 대한 뒤로 버튼을 여전히 보존하려는 경우 # Achors와 결합하여 URL을 변경하십시오 (브라우저가 다른 GET를 발행하도록 강요하지 않고).

예를 들어, Gmail은 다음과 같습니다.

mail.google.com/#inbox/message-1234

#을 지나는 모든 것은 Ajax를 통해 발생한 페이지 상태 변경이었습니다. 뒤로 누르면받은 편지함으로 다시 이동하겠습니다 (다시, 다른 브라우저없이).

체크 아웃 정말로 증식. 위키는 10 개월 동안 업데이트되지 않았지만 2008 년 Ajax Experience에 있었고 프레젠테이션 Brian Dillard에 의해. 그는 0.8 코드가 그의 하드 드라이브에 있다고 말합니다. 바라건대, 곧 다운로드 할 수 있기를 바랍니다.

다른 해결책 :

Ajax Pagination 및 뒤로 버튼

이것은 최고의 것 같습니다. jQuery & Mootools와 함께 작동합니다.

펑키 한 자바 스크립트 기술을 사용 하여이 문제를 해결하는 방법에는 종종 iframes가 포함되어 있지만이 상황에서 Ajax를 사용하는 이유에 대해 의문을 제기해야한다고 생각합니다. 실제로 사이트를 사용자에게 쉽게 사용할 수있게 하시겠습니까? 당신이 그것을 사용하는 것처럼 들리는 것처럼 들립니다. 당신은 당신이 시원하다고 생각합니다 (그 자체로는 항상 나쁜 것은 아닙니다)는 실제로 방문자에게 가치를 더할 수 없기 때문이 아닙니다. 일반적인 웹 사이트에서 일반 하이퍼 링크 문서는 거의 항상 1 차 탐색에 적합한 것입니다. 사람들이 기대하는 것과 나는 당신이 멋진 기술을 기반으로 그러한 기대를 어기는 것을 추천하지 않을 것입니다.

Ajax는 훌륭하고 많은 훌륭한 일을 할 수있게 해주 며 웹 사이트를 변경하는 것은 그 중 하나가 아닙니다.

그래도이 문제를 픽업하기 위해 잘했지만, Ajax와 함께 진행되고 이것에 대해 생각조차하지 않는 많은 사이트가 있습니다!

이 간단하고 가벼운 것을 시도하십시오 pathjs lib. 리스너를 앵커에 직접 바인딩 할 수 있습니다.

예시:

Path.map("#/page").to(function(){
    alert('page!');
});

Ajax는 정확히 설명한 이유에 대한 내비게이션에 가장 적합한 솔루션이 아닙니다. 헤더와 Navbar를 다시로드하는 데 히트는 브라우저의 내비게이션 UI를 깨는 번거 로움에 비해 최소한입니다.

Ajax의보다 적절한 예는 사용자가 메인 창에서 게임을 플레이 할 수 있도록하는 동시에 NAV 창에서 다른 컨텐츠 목록을 탐색 할 수있는 것입니다. 게임 플레이를 방해하지 않고 AJAX를 통해 NAV 창에 추가 항목을로드 할 수 있습니다.

간단한 하이퍼 링크를 고수했습니다. 귀하의 페이지 가구는 HTML의 상당 부분을 설명해서는 안하므로 페이지 요청에서 제외하는 큰 승리는 아닙니다. 각 리소스를 주소 지정할 수 있도록 (즉, 사용자가 관심을 가질 수있는 각 컨텐츠에 대한 URL)는 웹의 핵심 설계 기능입니다. 이는 캐싱이 작동 할 수 있으며 사용자가 북마크를 공유 할 수 있음을 의미합니다. 소셜 북마크 사이트뿐만 아니라 Google이 작동합니다.

후속 페이지 변경에서 두 개의 HTML 바이트를 면도하는 것은 노력의 가치가 없습니다.

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