#jquery #ajax #wordpress
#jquery #ajax #wordpress
Вопрос:
Мне нужно кэшировать ответ AJAX на стороне сервера вместо того, чтобы извлекать данные из базы данных каждый раз, когда клиент делает запрос.
function post_filter($filter_action,$filter_values) {
var ajaxurl = SiteInfo.home_url '/wp-admin/admin-ajax.php';
jQuery.ajax({
type: 'POST',
url: ajaxurl,
data: {"action": $filter_action, filter_values: $filter_values},
success: function(response) {
jQuery("#post-filter-results").html(response);
}
});
}
Ответ №1:
function post_filter($filter_action,$filter_values) {
var ajaxurl = SiteInfo.home_url '/wp-admin/admin-ajax.php';
jQuery.ajax({
type: 'POST',
dataType: "json",
data: {"action": $filter_action, filter_values: $filter_values},
success: function(response) {
jQuery("#post-filter-results").html(response);
}
});
}
Комментарии:
1. Хотя этот блок кода может ответить на вопрос, было бы лучше, если бы вы могли дать небольшое объяснение, почему он это делает
Ответ №2:
Если у вас есть сеанс php:
$_SESSION["your_key"] = your_response_object
пример (admin-ajax.php ) псевдокод :
if($_SESSION["your_key"])
{
echo $_SESSION["your_key"];
}else{
*call DB*
$_SESSION["your_key"] = *db_response*;
echo *db_response*;
}
Комментарии:
1. WordPress не использует сеансы. Я полагаю, OP может запустить один из них.