AJAX-кэш на стороне сервера WordPress

#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 может запустить один из них.