1、哪兩種AJAX方法
1.1、官方的方法
主要的思路是:
在functions裡增加wp_enqueue_script和wp_localize_script來增加AJAX的請求地址和呼叫指令碼。如:
$AJAX=array
(
'URL' => admin_url( 'admin-ajax.php' ),
);
$AJAXURL=get_bloginfo('template_url').'/public/js/Test_ajax.js';
wp_enqueue_script( 'my-ajax-request',$AJAXURL, array( 'jquery' ) );
wp_localize_script( 'my-ajax-request', 'AJAX', $AJAX );
function _aaaa()
{
$id=$_POST['id'];
$json['info']='rand='.rand(0,$id);
header("Content-Type: application/json");
echo json_encode($json);
exit;
}
add_action( 'wp_ajax_aaaa', '_aaaa' ); // ajax for logged in users
add_action( 'wp_ajax_nopriv_aaaa', '_aaaa' ); // ajax for not logged in users
當然也可以這樣:
$AJAX=array
(
'URL' => admin_url( 'admin-ajax.php' ),
);
$AJAXURL=get_bloginfo('template_url').'/public/js/Test_ajax.js';
wp_enqueue_script( 'my-ajax-request',$AJAXURL, array( 'jquery' ) );
wp_localize_script( 'my-ajax-request', 'AJAX', $AJAX );
function _aaaa()
{
$id=$_POST['id'];
$respond='rand='.rand(0,$id);
echo $respond;
die();
}
add_action( 'wp_ajax_aaaa', '_aaaa' ); // ajax for logged in users
add_action( 'wp_ajax_nopriv_aaaa', '_aaaa' ); // ajax for not logged in users
1.2、民間的方法
這個方法是在AJAX請求的時候,判斷action等關鍵的參數來調用functions裡相關函數。如:
function _bbbb()
{
if($_POST['action']=='bbbb')
{
$id=$_POST['id'];
$json['info']='rand='.rand(0,$id);
header("Content-Type: application/json");
echo json_encode($json);
exit;
}
}
add_action('init', '_bbbb');
也可以這樣:
function _bbbb()
{
if($_POST['action']=='bbbb')
{
$id=$_POST['id'];
$respond='rand='.rand(0,$id);
echo $respond;
die();
}
}
add_action('init', '_bbbb');
2、兩種AJAX方法的效率
本地網速測試結果(發送的資料有id和action,很小量的資料):