Ajax는 10 배의 시간이 걸린다 요청이 있습니다.

방금 WordPress에서 첫 번째 심각한 문제를 겪었고 Ajax를 즐기는 사람에게는 이것이 가장 큰 문제입니다.

Ajax API를 사용하는 동안 완료하는 데 1.5 초가 걸리는 Ajax 요청이 있습니다.

동일한 정확한 코드를 가져 와서 사용자 정의 스크립트 (WordPress 없음)로 실행하면 Ajax 요청에 150 밀리 초가 걸립니다. 이것은 과장이 아닙니다

http://wp.smashingmagazine.com/2011/10/18/how-to-use-ajax-in-wordpress/의 첫 번째 주석을 보면 다음 대화에서 이러한 속도 저하가 발생 함을 알 수 있습니다 귀하의 요청에 따라 모든 WP 가로 드됩니다 …

모든 WordPress를로드하지 않고 Ajax 요청을 할 수있는 솔루션이 있기를 바랍니다.

WordPress로 Ajax 요청 속도를 향상시킨 경험은 무엇입니까?



답변

그러나 이것은 완전한 WordPress 환경을 갖추기 위해 상당한 시간을 소비 해야하는 불쾌한 문제입니다.

작업을 위해 훨씬 더 나은 성능 (매우 역동적 인 증분 검색 기능을 위해)이 필요했습니다.

  1. Ajax 핸들러로서의 사용자 정의 파일.
  2. 제한된 WP 코어로드에 대한 상수 상수 .
  3. 작업에 필요한 부분 만 코어의 매우 선택적으로로드 된 부분.

이는 매우 제한적인 환경을 제공하지만 성능은 훨씬 우수하고 WP (와 함께 시작 $wpdb) 와의 적절한 호환성 이 유지됩니다.

다음은 로더 파일을 시작하는 것입니다. 예쁘지는 않지만 특정 요구 사항에 적합합니다.

<?php

ini_set('html_errors', 0);
define('SHORTINIT', true);

require '../../../../wp-load.php';
require( ABSPATH . WPINC . '/formatting.php' );
require( ABSPATH . WPINC . '/meta.php' );
require( ABSPATH . WPINC . '/post.php' );
wp_plugin_directory_constants();

// stuff goes here

답변

나는 이것을 발견했고 그것은 나의 아약스를 가속화했다.

function my_deregister_heartbeat() {
    global $pagenow;

    if ( 'post.php' != $pagenow && 'post-new.php' != $pagenow ) {
         wp_deregister_script('heartbeat');
         wp_register_script('heartbeat', false);
     }
}
add_action( 'admin_enqueue_scripts', 'my_deregister_heartbeat' );