zoukankan      html  css  js  c++  java
  • 化繁为简,最简易的SqlDataSource配合Cache使用~

    最近一个小项目用了DevExpress控件,实践中DevExpress的控件确实很方便。

    在用ASPxGridView控件的时候,为了偷懒结合了SqlDataSource使用,但一直在大数据列表上表现的不太理想

    本着最简洁优化的角度,翻了翻SqlDataSource的Cache属性,结合到项目使用效果还不错

    Gird代码就不贴了,贴下SqlDataSource的配置:

    当然Cache还有其他的设置,比如设置缓存时间,和刷新策略,比如CacheExpirationPolicy=Sliding属性,可设置每次操作之后会重置缓存计数时间

    这里主要使用的是CacheKeyDependency,用来和自动生成的缓存建立KEY依赖,更改了CacheKeyDependency的值就相当于重新建立了缓存~ 

    想当于手动刷新了缓存,知道这点你想什么时候刷新缓存数据都可以了~

        <asp:SqlDataSource ID="DSMain" runat="server" ConnectionString="<%$ ConnectionStrings:OraConnStr %>" ProviderName="<%$ ConnectionStrings:OraConnStr.ProviderName %>"
            EnableCaching="true" CacheKeyDependency="MyCacheKey"/>

    Dev重加载,为了提示用户体验,使用了异步Callback

                    <dx:ASPxButton ID="ASPxButton1" runat="server" Text="重新加载数据" AutoPostBack="false">
                        <ClientSideEvents Click="function validate(s, e) {   
                                    var r=confirm('确定要重新加载数据吗?')
                                    if (r!=true)      
                                       e.processOnServer = false;  
                                    else
                                       ReloadCallback.PerformCallback();
                                }" />
                    </dx:ASPxButton>
                    <dx:ASPxCallback runat="server" ID="ReloadCallback" ClientInstanceName="ReloadCallback" OnCallback="ReloadCallback_OnCallback">
                        <ClientSideEvents CallbackComplete="function(s,e){ShowReloadResult(e);}"></ClientSideEvents>
                    </dx:ASPxCallback>
        protected void ReloadCallback_OnCallback(object source, CallbackEventArgs e)
        {
            Cache["MyCacheKey"] = DateTime.Now;
    
            e.Result = true.ToString();
        }
            function ShowReloadResult(e) {
                if (e.result == "True")
                    if (confirm('重新加载成功,需要自动刷新页面吗~') == true)
                        window.location.reload();
            }
    
  • 相关阅读:
    帧锁定同步算法
    为 Raft 引入 leader lease 机制解决集群脑裂时的 stale read 问题
    etcd:从应用场景到实现原理的全方位解读
    给定一个二叉搜索树(BST),找到树中第 K 小的节点
    UDP如何实现可靠传输
    理解TCP/IP三次握手与四次挥手的正确姿势
    Redis持久化
    Redis提供的持久化机制(RDB和AOF)
    redis渐进式 rehash
    redis rehash
  • 原文地址:https://www.cnblogs.com/leeolevis/p/6024603.html
Copyright © 2011-2022 走看看