当第一次从主窗口进入到一个iframe简称{A}中,此时这个{A}中呈现的数据是新的,这时我又点了另外的一个iframe简称{B},这里{B}的数据也是新的,在{B}中进行一些逻辑处理,如向{A}中批量增加模型数据,这里我们再进入到{A}中会发现数据是被缓存着的。因为是从{B}中对批量操作了{A}的数据,{B}是与server通信的,也就是会进行逻辑层/持久层操作,这样server端更新的呈现部分是{B}而不是全部,这也就是局部刷新,只刷{B}。而我们需要做的是让{A}中的内容也跟着变。
解决方案:
·很明显iframe.window.location.reload();不符合当前需求。
·使用window.setTimeout(iframe.window.loadction.reload(),1000);这种方式会造成多次刷新,如果还要在{A}中对{B}的数据进行更新呢?
·研究了半天,其实可以直接从iframe cache问题入手来解决,很easy,直接不让它缓存不就完了,不缓存了,当然也就用不着刷新了。
示例:
复制代码 代码如下:
function doInsert2BatchCallBack() {
var pIf = parent.document.getElementById('IFRAME_A');
pIf.src = pIf.src + "&".concat(Math.random());
//提交批量导入请求
}
您可能感兴趣的文章: