Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“奇怪”;“缓存问题”;使用JQuery加载的MVC应用程序_Jquery_Asp.net Mvc - Fatal编程技术网

“奇怪”;“缓存问题”;使用JQuery加载的MVC应用程序

“奇怪”;“缓存问题”;使用JQuery加载的MVC应用程序,jquery,asp.net-mvc,Jquery,Asp.net Mvc,我有一个操作,它使用JQuery加载事件调用控制器方法并检索数据,这很好,我单击一个按钮,然后返回新内容。但是,在第三次单击后,它将停止获取数据。我在方法的顶部添加了一个断点,注意到它被击中了3次,然后没有被击中。以下是我的jquery代码: function callAction() { var url = '@Url.Action("Method", "Controller", new { type = "test" })'; $("#divToLoadData").load

我有一个操作,它使用JQuery加载事件调用控制器方法并检索数据,这很好,我单击一个按钮,然后返回新内容。但是,在第三次单击后,它将停止获取数据。我在方法的顶部添加了一个断点,注意到它被击中了3次,然后没有被击中。以下是我的jquery代码:

function callAction() {
    var url = '@Url.Action("Method", "Controller", new { type = "test" })';
    $("#divToLoadData").load(url);
}
正如我所说的,每次单击链接调用该函数时,都会加载数据,但在第三次检索之后,它无法调用该方法并检索数据。我也尝试过使用$.ajax,结果类似

任何人都会遇到类似的情况???

,因为
jQuery.load()
执行GET浏览器可能会缓存请求的结果并提供服务,而不是点击服务器。通过设置内容过期标题,可以强制浏览器始终将请求发送到服务器。使用此属性装饰您的操作:

public class NoCacheAttribute : ActionFilterAttribute
{
    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        if (filterContext.IsChildAction)
            return;

        filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
        filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false);
        filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
        filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
        filterContext.HttpContext.Response.Cache.SetNoStore();

        base.OnResultExecuting(filterContext);
    }
}

您是否尝试过使用
cache:false
选项的ajax?我确实尝试过,但也没有成功:(您是否使用Firebug
net
选项卡或开发者工具中的chrome
network
选项卡在第三次单击请求后检查了请求是否被发送,以及服务器返回了什么。是的,在停止一定数量的请求后,似乎什么也没有被发送。不过,如果我等待大约2分钟,我的断点会停止ts再次命中…发生了一些非常不寻常的事情…不幸的是,这也不起作用,我在属性中设置了一个断点,以确保它也被命中并且上下文被设置,这是一次命中几次,然后也停止了。虽然我现在注意到一些奇怪的行为,在点击链接几次之后,它没有发生如果没有任何数据,实际的应用程序本身会冻结…你是说你的浏览器会冻结吗?不,浏览器不会冻结,只是应用程序本身。什么是冻结?CPU会100%运行吗?web服务器不会再处理任何请求吗?-看起来你在其他地方遇到了问题…看起来web服务器本身没有问题在一定数量的请求之后,它不会处理任何请求。几分钟后,它会用正确的数据再次响应,但这似乎是在一致数量的请求之后,目前是3。这很不寻常。。。