是什么让缓存从WebMatrix的工作?(What keeps caching from worki

2019-10-29 07:15发布

我有一些在我加入了一行代码一个WebMatrix的剃刀ASP.Net网站页面:

    Response.OutputCache(600); 

从阅读它,我曾以为,这是不是意味着IIS将创建由页面生成的HTML的高速缓存,服务是HTML在接下来的10分钟,而当一个请求进来了10分钟后,它会再次运行该代码。

现在这一页被拿来作为计时的jQuery呼叫的一部分。 在客户端的时间代码运行的每一分钟。 该代码有很简单:

        function wknTimer4() {
        $.get('PerfPanel', function(data) {
        $('#perfPanel').html(data);

        });

它偶尔会出现缓存,但是当我看到在这10分钟的时间内完成数据库查询的数量,我可能有超过100个数据库查询。 我知道缓存不工作我所期望的方式。 是否缓存仅适用于单个会话工作? 有一些其他限制?

更新:它真的并不重要客户做什么,无论是通过一个jQuery调用,或直HTML抓取网页的内容。 如果服务器的缓存,它并不重要客户做什么。

更新2:这里倾倒完整的代码。 无聊的东西:

@{  

    var db = Database.Open("LOS"); 
    var selectQueryString = "SELECT * FROM LXD_funding ORDER BY LXDOrder"; 
    // cache the results of this page for 600 seconds
    Response.OutputCache(600); 


 }



@foreach (var row in db.Query(selectQueryString) ){

    <h1>
    <a href="Dashboard/FundingDetails/@row.Status">@row.quotes</a>  Loans @row.NALStatus, oldest     @(NALWorkTime.WorkDays(row.StatusChange,DateTime.Now)) days

    </h1>

}

Answer 1:

您对如何工作的OutputCache假设是正确的。 你可以检查萤火虫或Chrome工具看打你的页面的传出请求? 如果你正在使用jQuery,有时人设上的$不用彷徨或$就为false,这将导致请求的页面有一个时髦的尾部查询字符串缓存属性。 我做了这一设置在全球范围内解决与jQuery和IE浏览器的一些问题的错误:

http://api.jquery.com/jQuery.ajaxSetup/

另外看这里是DB调用的分组。 你只是做了很多以一个请求调用的? 你是在一个循环中执行DB命令,另一位读者之内? 在这种情况下,代码将是有益的。

祝你好运,我希望这有助于!



文章来源: What keeps caching from working in WebMatrix?