question
Récemment, j'ai utilisé EasyUi pour développer un système d'arrière-plan. J'ai trouvé un problème étrange pendant les tests. $ ('dg'). dataGrid ('recharger'); Lors du rechargement des données de la table, je n'ai eu aucune réaction du tout. Plus tard, j'ai découvert que ce n'était pas qu'il n'y avait pas de réponse, mais que le navigateur a utilisé du cache.
Solution
Il existe plusieurs solutions résumées par des internautes en ligne:
1. Ajoutez un horodatage après l'URL, afin que l'URL accessible dans la première charge et le rechargement soit incohérente, ce qui rend le système incapable d'utiliser le cache IE. Grâce à des tests, il a été constaté que la demande EasyUi a déjà une chaîne de nombres aléatoires _145232xxx après sa demande, mais IE utilise toujours le cache. Plus tard, j'ai ajouté Rand = xxx (nombre aléatoire généré par math.rand ()) au JS demandé et n'utiliserais pas le cache. (J'ai testé de IE8 à IE11)
2. Utilisez un moyen similaire d'ajouter <Meta> à <A-head> pour effacer le cache:
La copie de code est la suivante:
<Méta http-equiv = "pragma" contenu = "non-cache">
<Meta http-equiv = "cache-control" contenu = "no-cache, must-revalidate">
<Méta http-equiv = "expires" contenu = "mer, 26 février 1997 08:21:57 GMT">
Malheureusement, comme de nombreux internautes, j'ai échoué à cette méthode. :(
3. Déclarer la méthode correspondant à la charge de dataGrid comme «post», cette solution est la plus rapide. Mais il y a plusieurs problèmes:
• Si l'interface du serveur ne prend pas en charge le mode POST, elle sera arrêtée.
• Si l'interface du serveur peut la contrôler elle-même, cette façon de compromettre pour le front-end conduira à l'interface qui n'est pas du tout reposante! Vous devez savoir que l'interface RESTful est essentiellement pour la conception de la requête.
Résumer
C'est donc la première méthode. Ajouter des nombres aléatoires vous-même dans l'URL est facile à utiliser. Pardonnez-moi d'être obsédé par le code que je ne veux pas modifier l'interface du serveur _ (: з」∠) _.