Home > ajax > store/cache ajax sent data to avoid repeated request

store/cache ajax sent data to avoid repeated request

August 30Hits:2
Advertisement

I developed a widget that offer a full blown archive search tool, where the user can select various options that are joined into an objects to be passed to WP_Query in an ajax action that returns the results data via JSON.

10 results are sent back to the page so pagination is needed. A new request is sent every time the page is turned. More here.

My question is: to decrease the request payload, I want that if the action is called after a page turn the information about the query is not sent but just the change page order is sent.

To achieve this i suppose the solution is to store the already sent query.

How is possible to do this?

thanks!

Answers

Attempting to answer this question directly: if the data you are returning is exactly the same each time, you can send cache control / expires headers with your AJAX response so that the browser knows not to request again for a while.

// ask the browser to cache this response, to reduce requests
$expires = 60 * 15;        // 15 minutes
header('Pragma: public');
header('Cache-Control: maxage=' . $expires);
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT');

But if you want different data each time, which it sounds like you do (via paging), then caching does nothing for you here. This answer on your other question explains why you would be better off grabbing small chunks at a time.

Related Articles

Copyright (C) 2018 ceus-now.com, All Rights Reserved. webmaster#ceus-now.com 14 q. 0.699 s.