zl程序教程

您现在的位置是:首页 >  前端

当前栏目

j-ui dwz j-ajax 重复刷新问题

AJAXUI 重复 刷新 问题
2023-09-27 14:21:31 时间

使用 dialog 选卡页事, 三选卡标签切换时需要 重新加载更新 刷新。

老版本 dwz 切换标签时,会自动刷新。

新版本不会自动刷新。

无奈,所需功能 为切换时重新加载刷新。


功能控制文件位置

Public\dwz\js\dwz.min.js

新版本不刷新源码为

    var jGroup = jGroups.eq(iTabIndex);  
             if (this.href && !jGroup.attr("loaded")) jGroup.loadUrl(this.href,{},function(){  
         jGroup.find("[layoutH]").layoutH();  
         jGroup.attr("loaded",true);  
    });  



老版本每次都重新加载刷新

    var jGroup = jGroups.eq(iTabIndex);  
        if (this.href) jGroup.loadUrl(this.href,{},function(){  
        jGroup.find("[layoutH]").layoutH();  
    });  


将新版本源码 此处源码整体替换

即还原回老版切换重新加载功能

还原为原始功能后,每次都会刷新又有些浪费资源,增加操作量

可在两段代码中增加变量参数控制 是否刷新。

我没用这种方法,我的方法是,当切换时,识别末尾参数是否变化,如果变化就刷新。


    var jGroup=jGroups.eq(iTabIndex);
    if(this.href!=jGroup.attr("bhref"))jGroup.loadUrl(this.href,{},function(){                                          
    jGroup.find("[layoutH]").layoutH();
    });
    jGroup.attr("bhref",this.href);//当前路径

原理:

第一次进入时,必然刷新,刷新后记录当前路径

jGroup.attr("bhref",this.href);//当前路径

第二次进入时,判断来源路径与原始路径是否相同,不同则刷新。

this.href!=jGroup.attr("bhref")

================================================

修改时查找相关资料如下


对 dwz.tab.js 的改进

原来的 class="j-ajax" 每次点击tab都刷新
<!--ajax载入,每次点击都刷新-->
<li><a href="tab2.html" class="j-ajax"><span>从表2</span></a></li>

1. 加了 ajax-once 可以只载入一次,就像navTab的行为,改进在 dwz.tab.js
<!--ajax载入,只载入一次-->
<li><a href="tab1.html" class="j-ajax ajax-once"><span>从表1</span></a></li>

2. 从navTab复制过来的关闭外观,改进在 core.css 和 style.css 里
<!--关闭按钮-->
<li><a href="tab3.html" class="j-ajax"><span>从表3</span></a><a href="#" class="close">close</a></li>