it-swarm-ko.tech

Ajax 콜백에 가장 빠른 방법 / 구현 방법은 무엇입니까?

다양한/수많은 맵 이벤트에서 아약스를 통해 마커를로드하는 맵이 있습니다. 현재 json/js를 인쇄하는 hook_menu() 항목에 대한 사용자 정의 페이지 콜백을 정의하고 있습니다.

내 페이지 콜백 은 모든 내용을 반환하지 않고 내용 만 만 인쇄 Drupal 전체 템플릿, 메뉴 등을 렌더링하지 않으므로 only JavaScript가 포함 된 페이지를 반환 할 수 있습니다.

이것이 효과가 있지만 Drupal 여전히 완전히 부트 스트래핑됩니다. 따라서 많은 오버 헤드를 추가하고 싶습니다.

고성능 자바 스크립트 콜백 핸들러 를 살펴 보았습니다.이 기능은 "고성능 자바 스크립트 콜백 핸들러"로 유명하며 간단히 말하면 js.php 칭찬 index.php 부트 요청에 대한 요청을 지시하고 사용자 정의/제한/최적화 Drupal 기본적으로 수행).

안타깝게도 js 프로젝트에는 아직 D7 릴리스가 없습니다 ( 여기서 반복 ), 우리를 시작으로 이끈 ... =

Drupal에서 Ajax 콜백을 구현하는 가장 빠른 방법은 무엇입니까?

17
electblake

내 json/js를 인쇄하는 hook_menu() 항목에 대한 사용자 정의 페이지 콜백을 정의합니다.

그것이 Drupal 6 제공되는 것입니다. Drupal 7 AJAX framework 는 그보다 약간 더 많은 일을 할 수 있습니다.) 예 Drupal을 부트 스트랩합니다. 간단히 말해 ajax_deliver () 를 페이지 전달 방법으로 사용하고 명령을 브라우저에 보낼 수 있습니다.

... 버튼과 링크에 클래스를 추가하여 Ajax를 활성화 할 수 있습니다. 'use-ajax'클래스를 링크에 추가하면 Ajax 호출을 통해 링크가로드됩니다. 이 방법을 사용할 때 링크의 href에는 경로의 일부로 '/ nojs /'가 포함될 수 있습니다. Ajax 프레임 워크가 요청하면이를 '/ ajax /'로 변환합니다. 그러면 서버는이 요청이 실제 Ajax 요청을 통해 이루어 졌는지 또는 저하 된 상태인지를 쉽게 알 수 있고 적절하게 응답 할 수 있습니다.

그러나 성능상의 이유로 프레임 워크를 회피하고 싶다면 모듈에서 자바 스크립트에서 직접 PHP 파일을 호출하는 것을 막을 수는 없습니다. 당신은 Drupal goodness)를 얻지 못하지만 페이지를 완전히 제어 할 수 있습니다.

8
Jeremy French

약간 늦었지만 특히 폴링을 위해 해당 아약스 콜백을 사용하는 경우 (예를 들어 새 메시지 확인) 흥미로운 대안이 있습니다. Drupal node.js integration .

폴링 대신 사용자 (페이지의 JS라고도 함)가 node.js 서버에 열린 연결을 유지하는 이벤트와 유사한 시스템을 구축 할 수 있습니다. 어떤 일이 발생하면 node.js를 통해 모든 사용자에게 직접 알릴 수 있습니다.

4
Berdir

Ajax 콜백 in Drupal을 구현하고자하므로 JS 모듈을 사용하는 것이 좋습니다. 방금 코드를 간단히 살펴 보았고 기본적으로 제안한 내용입니다 (그러나 세부 사항에 더 많은 관심을 기울임). 관리자는 최고 Drupal 개발자이기도합니다.

다른 모듈의 API를 사용해야하는 경우 module_load_include() 또는보다 수동적 인 include 'sites/all/modules/contrib/...'; 접근 방식을 사용해야 할 것 같습니다.

당신이 말하는 바로 그 문제는 최근 화제가되었습니다. DrupalCon Chicago의 Drys 기조 연설 Drupal 8은 콜백 및 HTML이 아닌 출력 형식을 수행하기 위해 더 나은 API가 필요합니다.

3
Adam DiCarlo