問題描述

我剛剛用 WordPress 碰到了我的第一個嚴重問題,對於喜歡 Ajax 的人來説,這是一個很大的事情。

我有一個 Ajax 請求,使用 Ajax API 需要 1.5 秒才能完成。

如果我使用相同的確切代碼並使用自定義腳本 (無 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.  SHORTINIT constant 用於有限的 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

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。