Ne pouvez pas désactiver le cache jQuery

Mise à jour

J'ai compris qu'il faut problème de mise en cache, mais je ne peux pas tourner mémoire cache.
Voici ma changé script:

<script src="../../Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript">
        jQuery.ajaxSetup({
            //Disable caching of AJAX responses 
            cache: false
        });

        jQuery("#button1").click(function (e) {
            window.setInterval(refreshResult, 3000);
        });

        function refreshResult()
        {
            jQuery("#divResult").load("/Home/Refresh");
        }
</script>

Il met à jour une partie d'une page web toutes les 3 sec. Il ne fonctionne qu'une fois, après compensation cache du navigateur web, après qu'il ne fonctionne pas - les demandes sont faites à la Maison /Actualiser sans intervalle de 3 secondes, de données est envoyé à partir du serveur, mais rien n'est affiché sur la page web; les demandes ultérieures envoyer cookie ASP.NET_SessionId=wrkx1avgvzwozcn1frsrb2yh.
Je suis à l'aide de ASP.NET MVC 2 et c#.

J'ai un problème avec jQuery, voici comment mon application web fonctionne

  • De recherche.aspx page web qui contient un formulaire et le script jQuery postes de données de Recherche() dans la Maison contrôleur lorsque l'utilisateur clique sur bouton button1.

De recherche.aspx:

<%@ Page Title="" Language="C#" 
MasterPageFile="~/Views/Shared/Site.Master" 
Inherits="System.Web.Mvc.ViewPage<GLSChecker.Models.WebGLSQuery>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Title  
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Search</h2>
<% Html.EnableClientValidation(); %>
<% using (Html.BeginForm()) {%>    
<fieldset>
<div class="editor-label">
<%: Html.LabelFor(model => model.Url) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Url, 
new { size = "50" } ) %>
<%: Html.ValidationMessageFor(model => model.Url) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.Location) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Location, 
new { size = "50" } ) %>
<%: Html.ValidationMessageFor(model => model.Location) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.KeywordLines) %>
</div>
<div class="editor-field">
<%: Html.TextAreaFor(model => model.KeywordLines, 10, 60, null)%>  
<%: Html.ValidationMessageFor(model => model.KeywordLines)%>
</div>
<p>
<input id ="button1" type="submit" value="Search" />
</p>
</fieldset>
<% } %>
<script src="../../Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery("#button1").click(function (e) {
window.setInterval(refreshResult, 5000);
});
function refreshResult()
{
jQuery("#divResult").load("/Home/Refresh");
}
</script>
<div id="divResult"> 
</div>
</asp:Content>
 [HttpPost] 
public ActionResult de Recherche(WebGLSQuery queryToCreate) 
{ 
if (!ModelState.IsValid) 
retour à la Vue("Recherche"); 
queryToCreate.Remote_Address = HttpContext.Demande.ServerVariables["REMOTE_ADDR"]; 
Session [""] = null; 
SearchKeywordLines(queryToCreate); 
Fil de discussion.Sommeil(15000); 
retour à la Vue("Recherche"); 
}//Search() 
  • Après button1 bouton est cliqué sur le script ci-dessus à partir de la Recherche.aspx page web s'exécute.

  • Action rechercher() dans le contrôleur exécute pour la plus longue période de temps. Je simule
    cela dans le test en mettant le Fil de discussion.Sommeil(15000); dans l'action Rechercher ().

  • 5 sec. après la soumission, le bouton a été pressé, le ci-dessus script jQuery appels
    Refresh() dans la Maison de contrôleur.

 public ActionResult Refresh() 
{ 
ViewData [""] = DateTime.Maintenant; 
retour PartialView(); 
} 
  • Refresh() rend cette partielle

<%@ Control Language="C#"
Inherits="Le Système De.Web.Mvc.ViewUserControl"
%>

<%= ViewData [""] %>

Le problème est que dans Internet Explorer 8, il est seulement une demande pour le /Home/Actualiser;
dans Firefox 3.6.3 toutes les demandes à la Maison /de l'Actualisation sont faites, mais rien n'est affiché sur la page web. Un autre problème avec Firefox, c'est que les demandes à la Maison /de l'Actualisation sont effectuées chaque seconde de ne pas toutes les 5 secondes.

J'ai remarqué qu'après je effacer le cache de Firefox le script fonctionne bien la première fois button1 est pressé, mais après cela, il ne fonctionne pas.

Je vous serais reconnaissant de suggestions utiles.

OriginalL'auteur robert_d | 2010-05-25