2011-02-09 3 views
2

javascript를 사용하여 onclick 처리기를 HTML <a> 태그에 지정할 때 Ajax 사용과 관련하여 특정 질문이 있습니다. Ajax 요청 URL을 얻는 가장 좋은 방법은 무엇입니까? this.href을 사용하거나 핸들러 함수 자체에 코드를 사용해야합니까? 그런 다음Ajax 링크를위한 최상의 HTML 구조

<a id="link" href="http://mysite.com/getData.php">Get Data</a> 

, 자바 스크립트 :

는 다음 링크를 고려 내가 핸들러 내부 this.href를 사용하여 좋아

document.getElementById('link').onclick = function() { 
    // Send ajax request 
} 

을하지만 난 domready 화재 전에 링크를 클릭하는 사용자에 대한 걱정 링크가 활성화됩니다. HTML에서 href="javascript:void(0);"을 사용하고 처리기 자체에서 URL을 생성하는 것이 더 좋습니까? 이렇게하면 링크가 활성화되지 않으면 링크가 아무 것도하지 않습니다. 여기에 최선의 연습은 무엇입니까?

감사합니다, 브라이언

답변

2

이 관점에서 생각해 : 더 JS가 활성화되지 않은 경우 귀하의 페이지 구조가 유지 얼마나?

응용 프로그램은 어떤 상황에서도 사용자 입력에 응답해야하며 사용자가 Javascript 기반 브라우저를 사용하는지 여부에 대한 암묵적인 가정에 의존해서는 안됩니다. 말도 안되는 소리 겠지? 글쎄, 나는 거대한 군단을 위해 일하는 클라이언트가 많다. 데스크탑 구성이 모두 잠겨 있기 때문에 모든 사람들이 IE6을 엄청나게 엄격하게 설정하고있다.

따라서 앵커 태그의 href 속성은 자바 스크립트가 활성화되어 있지 않은 경우 사용자가 가고 싶은 위치를 가리켜 야합니다. 기본적으로 AJAX 기능을 수행 할 수있는 AJAX 기능을 사용할 수 있어야합니다. 같은 것). onclick 핸들러에서 AJAX 호출에 대한 URI를 지정해야합니다.

모든 것이 끝나면 JS가 활성화 된 (대다수 일 것입니다) 사용자는 AJAX XHR 호출에 대한 URI가있는 onclick 처리기를 친 것이고 JS를 사용할 수없는 사용자는 동일한 결과를 얻을 수있는 다른 페이지로 리디렉션됩니다.

+0

남자, 질문에 대한 투표를 저장하려고하지만 +1 만했습니다. 'href = "#"'및'href = "javascript : ..."'chaff로 너무 혼잡 한 세상에는 온전한 목소리를 내 주셔서 감사합니다. – Phrogz

+0

@Brian - 감사합니다. 나는 그 개념에 동의합니다. 하지만 실제로 URL을 다르게하는 100 개의 아약스 링크가 있다고 가정 해 봅시다. 실제로 100 개의 핸들러를 작성해야합니까? – Brian

+0

@Brian 음, 예, 아니오. 100 개의 AJAX 핸들러에 공통적 인 코드를 URI로 매개 변수로 사용하는 단일 함수로 리팩터링해야합니다. 그러나 네가 내 충고를 따르기로 결정했다면 그 기능을 호출하는 100 개의 다른 onclick 핸들러를 작성해야 할 것이다. –

관련 문제