解决父类加载iframe,src参数过大导致加载失败

<iframe src="*******.do?param=****" id="leftFrame" name="leftFrame" frameborder="0"></iframe>

或者是使用js加载src:

var params = "?pk_id="+pk_id;

var frameLeftSrc = "<%=path %>/****/****.do"+params;

$(‘#leftFrame‘).attr("src",frameLeftSrc);

(先说明一下,此处只是以一个参数为例,实际可能会有多个参数。我们继续)

上面两种写法,都可以实现iframe的加载,我们可能会以为没问题,很正确。其实上面的写法的确是没有太大的问题,对于参数的值不长的时候,注意是参数的值的长度,不是参数的多少。比如说,我要向这个iframe中传递个参数,参数名叫pk_id,值是由主页面或者其他页面返回的一长串的主键拼接起来的值,起码3000个字符以上,这个时候我们再用这个方法访问就有问题了。因为这种url方法是通过get进行提交的,参数的长度是有限制的。

那么对于这种大数据传输的时候怎么办呢,我目前想到的就有两种(大家有什么更好的提议尽管提,相互交流,相互提高):

一、仍旧用这个种方式传递,但是参数的值不要过长,前提是不长的参数值可以通过关联查询到你想要的长的参数值,这样iframe接收到这个不长的参数值之后,你再想办法获得在iframe子页面中获得你想要的长的参数值。(可以用,但不建议,因为需要个前提)

二、在主页面采用以下方法,进行加载iframe页面即可:

主页面:<iframe src="about:blank" id="leftFrame" name="leftFrame"  frameborder="0">

js:

var url="<%=path %>/pubitem/toChoosePubItemLeft.do"; //定义iframe页面的form表单的action

//定义form表单

var html1=‘<form id="queryForm" name="queryForm" method="post" target="_self" action="‘+url+‘">‘+

‘<input type="hidden" id="pk_id" name="pk_id" value="‘+pk_id+‘"/>‘+      //pk_id是一个长度超过3000字符的值

‘</form>‘;

document.getElementById(‘leftFrame‘).contentWindow.document.write(html1);  //将表单写入iframe中

document.getElementById(‘leftFrame‘).contentWindow.document.getElementById(‘queryForm‘).submit();//执行iframe中表单的提交

将以上方法封装到一个方法里面,然后主页面加载的时候调用这个方法,就会将主页面的大数据传递给iframe页面了。

时间: 2024-12-15 15:43:36

解决父类加载iframe,src参数过大导致加载失败的相关文章

解决父页面加载iframe时,src链接中参数值过大导致加载失败的问题

有时候我们在使用iframe时,喜欢这么写 <iframe src="*******.do?param=****" id="leftFrame" name="leftFrame" frameborder="0"></iframe> 或者是使用js加载src: var params = "?pk_id="+pk_id; var frameLeftSrc = "<%=pa

微信内置浏览器运用bootstrap后以大分辨率加载网页解决

最近两天做了个web app应用程序,在手机自带浏览器中正常,微信浏览器中却出现了字体缩小情况,经过实验,在去掉bootstrap.css引用后window.innerWidth是320px,加上引用后window.innerWidth是480px.手机浏览器以大分辨率加载网页,网页元素就会响应缩小. 经过一段段的删除bootstrap.css中的css,发现去掉 @-ms-viewport {  width: device-width;} 后网页就能在微信中正常显示了.bootstrap版本v

DevExpress ChartControl大数据加载时有哪些性能优化方法

DevExpress ChartControl加载大数据量数据时的性能优化方法有哪些? 关于图表优化,可从以下几个方面解决: 1.关闭不需要的可视化的元素(如LineMarkers, Labels等): Series.View.LineMarkerOptions.Visible =false. 2. 关闭图表的滚动与缩放功能,手动调整范围,这样将大大减少所需计算的个数. 3. 将 ChartControl.RefreshDataOnRepaint属性设为false 4. 将 ChartContr

asp.net中TreeView的大数据加载速度优化

由于数据量太大,加载树时间很长,所以进行了优化 前台 .aspx <asp:Panel ID="Panel2" runat="server" Height="600px" ScrollBars="Auto"> <asp:TreeView ID="TreeView1" runat="server" ForeColor="Black" OnTreeNod

Android自助餐之大图片加载

Android自助餐之大图片加载 原理 使用BitmapFactory.decodeStreeam()方法,该方法会调用native层代码来创建bitmap(两个重载都会调用) 使用带BitmapFactory.Options参数的方法,改参数可指定生成bitmap的大小 思路 根据View尺寸或Window尺寸来确定bitmap的尺寸 将确定好的尺寸放入BitmapFactory.Options 调用BitmapFactory.decodeStreeam()生成bitmap 步骤 根据图片路径

gitbook 入门教程之解决windows热加载失败问题

破镜如何贴花黄 gitbook 在 Windows 系统无法热加载,总是报错! gitbook 是一款文档编写利器,可以方便地 markdown 输出成美观优雅的 html ,gitbook serve 启动服务器后,原来相貌平平的 markdown 丑小鸭摇身一变就成了倾国倾城的 html 绝色佳人. 如果源文件发生更改,Windows 却无法按照预期那样重启服务器,直接抛出一个异常,立即终止了 markdown 的化妆. Restart after change in file README

VS 下 解决SVN冲突- 项目加载失败

上篇我们同样介绍的VS 下 解决SVN冲突. 这一篇我们接着说另一种情况.当我们打开自己从SVN 上checkout下更改后的文件,会发现有时候提示我们项目加载失败. 解决办法是 一 将项目移除改解决方案.并关闭vs. 二打开文件夹.在移除的解决方案的跟文件夹下重新update. 三 重新打开就好啦. 这篇博客很简单,权当积累啦. 问题越多越好,解决问题才是提高.

[Aaronyang] 写给自己的WPF4.5 笔记6[三巴掌-大数据加载与WPF4.5 验证体系详解 2/3]

我要做回自己--Aaronyang的博客(www.ayjs.net) 博客摘要: Virtualizing虚拟化DEMO 和 大数据加载的思路及相关知识 WPF数据提供者的使用ObjectDataProvider 和 XmlDataProvider WPF验证 第一:使用自带的属性SET抛出异常,前台捕捉到异常,描红 第二:我们可以自定义验证规则,替代刚开始的异常捕捉验证 第三:我们可以使用INotifyDataErrorInfo方式,增加异常,并实现了验证通知和还原非法值 第四:我们使用了Er

dll注册加载失败解决方法

当输入命令regsvr32 A.dll注册时,跳出下面错误提示: 模块C:\windows\System32\A.dll加载失败. 请确保该二进制存储在指定的路径中,或者调试它检查该二进制或相关的 .DLL文件是否有问题 查了很多资料,总而言之是64位系统的system32与syswow64的混淆原因,解决方法就是到syswow64目录下使用regsvr32 命令.但我根据这种解决方法,还是不能解决问题. 这里感谢老师提醒,在次与大家分享. B.dll的生成引用了A.dll,在注册B.dll时出