问题描述

我刚刚用 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。