Après avoir lancé longtemps, j'ai utilisé la méthode de chargement jQuery pour demander la demande dans le programme. Il y a un baidu, qui sait que la charge est demandée dans un get, donc c'est le navigateur
Il a mis en cache. J'ai recherché beaucoup de solutions et beaucoup sur Internet. Il est principalement divisé en solutions clients et solutions de serveur.
1. Solution client
IE Strategy Access: Internet Options-Browing Historical Records-Setting - L'option des fichiers temporaires d'Internet
1: Ajouter une fonction aléatoire après la page demandée par Ajax, nous pouvons utiliser la fonction de temps aléatoire
Ajouter t = math.random () après l'URL envoyé par JavaScript
Par exemple: url + "&" + "t =" + math.random (); ou new Date ();
2: Ajouter XmlHttpRequest.SetRequestHeader ("if-modify-Since", "0")
Dans des circonstances normales, le XMLHttpRequest ici ne sera pas utilisé directement
Vous devriez pouvoir trouver ce code
Xxxxx.send (yyyyyy);
Puis transformez-le en
Xxxxx.setRequestHeader ("if-modify-suce", "0");
Xxxxx.send (yyyyyy);
La pratique a prouvé que les deux méthodes sont très efficaces.
1. Ajouter l'en-tête ("Cache-Control: sans cache, doit-revalider") sur le serveur
2. Ajouter XmlHttpRequest.SetRequestHeader ("if-modified-suce", "0");
3. Ajouter XmlHttpRequest.SetRequestHeader ("Cache-Control", "No-Cache");
4. Ajouter "? Fresh =" + Math.Random () Après le paramètre URL de Ajax;
5. La quatrième méthode est similaire à la troisième.
6. Utiliser le post Remplacer Get: Non recommandé
2. Solution de la côté du serveur:
Prenez Struts2 comme exemple:
Méthode Struts2-Server-Secide
Code XML
Copier le code du code comme suit:
<package name = "json-nocache" étend = "json-default">
<Wterceptors>
<interceptor name = "CachingHeledersInterceptor" />
<interceptor-stack name = "DefaultSecuritystack">
<interceptor-ref name = "defaultstack" />
<interceptor-ref name = "CachingHeledersInterceptor" />
</ Internetor-stack>
</ intercepteurs>
<default-interceptor-ref name = "DefaultSecuritystack" /> />
</ package>
Code java
Copier le code du code comme suit:
Classe publique CachingHeaHenerInterceptor étend Résumé Intercepor {
Long SerialVersionUID privé statique statique = 1L;
Interception de cordes publiques
ActionContext context = invocation.getInvoconText ();
HttpServletResponse Response = (httpServletResponse) context.get (strutsstatics.http_response);
if (réponse! = null) {
Response.sethEader ("Cache-Control", "No-cache");
Response.sethEader ("Pragma", "No-Cache");
Response.sethEader ("Expire", "-1");
}
Retour invocation.invoke ();
}
}