仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 449|回复: 9
打印 上一主题 下一主题

[学习教程] ASP教程之转:怎样在Form域中Post年夜于100K字节的...

[复制链接]
小魔女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:20:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
问题是他们究竟是喜欢他们是使用软件时,速度快还是速度慢好.(当然在3秒以内).无论是他们输入资料时,查找资料时,分析资料时.数据怎样在Form域中Post年夜于100K字节的数据

之前在事情中碰到一个成绩,当表单发送的数据量很年夜时,就会报错。查阅MSDN懂得到,缘故原由是微软对用Request.Form()可吸收的最年夜数据限定为100K字节。

微软倡议用Request.BinaryRead()读取表双数据,但因为这类办法读出的是二进制数据,必要对读出的数据逐字节举行剖析,天生成心义的字符串(MSDN上的一段程序就是如许写的,但它并没有思索诸如标点标记等本义字符必要举行特别剖析)。假如说这类办法关于纯英文体系委曲可用的话,则关于中文体系来讲就有极年夜的贫苦,由于汉字是用两个字节暗示的,而读出的二进制数据自己其实不能判别是英文仍是汉字(不然就不是二进制数据,而是字符串了^-^)。如许的话就必需懂得汉字的编码纪律才干举行剖析。最初,即便算法上能把这些都剖析出来,人人想一想关于一个MB级的巨型字符串逐字节举行剖析,其效力何如?以是,此路欠亨!

不外,举措老是有的。一入手下手我觉得是全部表双数据的总和不克不及凌驾100KB,厥后发明这是对表单内每一个域的限定。成绩的办理举措是,关于一个必要发送年夜数据的域,在提交表单前将数据拆分为小于限额的数份,分离放在数个hidden域中,同时把原有域清空,再正式提交表单。服务器端仍是用Request.Form()读取各hidden域的数据,再依照按次把他们拼接起来就好了。次要代码以下:

注重:必要在Form中的HTML代码内指定一个DIV,以便向个中静态拔出hidden域。

====客户端示例代码====
<scriptlanguage=javascript>
//数据拆分,并放到响应的hidden域中,在Form的onSubmit事务中引发
functionfnPreHandle()
{
variCount;//拆分为几个域
varstrData;//原始数据
variMaxChars=50000;//思索到汉字为双字节,域的最年夜字符数限定为50K
variBottleNeck=2000000;//假如文章凌驾2M字,必要提醒用户
varstrHTML;

//原始数据
strData=frmTest.BigField.value;

//假如文章其实太长,必要提示用户
if(strData.length>iBottleNeck)
{
if(confirm("您要公布的文章太长,倡议您拆分为几部分分离公布。
假如您保持提交,注重必要较长工夫才干提交乐成。

是不是保持提交?")==false)
returnfalse;
}

iCount=parseInt(strData.length/iMaxChars)+1;

//hdnCount纪录原数据域拆分为几个子域
strHTML="<inputtype=hiddenname=hdnCountvalue="+iCount+">";

//天生各子域的HTML代码
for(vari=1;i<=iCount;i++)
{
strHTML=strHTML+"
"+"<inputtype=hiddenname=hdnBigField"+i+">";
}

//在Form中DIV(divHidden)内静态拔出各hidden域的HTML代码
document.all.divHidden.innerHTML=strHTML;

//给各子域赋值
for(vari=1;i<=iCount;i++)
{
frmTest.elements["hdnBigField"+i].value=strData.substring((i-1)*iMaxChars,i*iMaxChars);
}

//原数据域清空
frmTest.BigField.value="";
}
</script>

====服务器端示例代码====
<%
DimstrData
DimintFieldCount
Dimi

intFieldCount=Request.Form("hdnCount")

Fori=1TointFieldCount
strData=strData&Request.Form("hdnBigfield"&i)
Next

Response.WritestrData
%>


你说微软为何要有个100KB的限定呢?浑!
</p>对于中小型web应用来说,php有很强的竞争力,linux+apache+mysql+php(lamp)的组合几乎可以胜任绝大多数网站的解决方案,对于大型应用来讲,对于系统架构要求更高,需要有成熟的框架支持,jsp的struts是个不错的框架,国内介绍它的资料也非常多,应用逐渐广泛起来。asp就不用说了,
因胸联盟 该用户已被删除
沙发
发表于 2015-1-20 09:31:47 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
金色的骷髅 该用户已被删除
板凳
发表于 2015-1-27 08:17:46 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
兰色精灵 该用户已被删除
地板
发表于 2015-2-2 21:22:23 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
柔情似水 该用户已被删除
5#
发表于 2015-2-3 17:47:08 | 只看该作者
掌握asp的特性而且一定要知道为什么。
小魔女 该用户已被删除
6#
 楼主| 发表于 2015-2-9 04:17:03 | 只看该作者
Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
admin 该用户已被删除
7#
发表于 2015-2-26 21:36:18 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
分手快乐 该用户已被删除
8#
发表于 2015-3-8 18:09:13 | 只看该作者
Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
小妖女 该用户已被删除
9#
发表于 2015-3-16 09:10:08 | 只看该作者
掌握asp的特性而且一定要知道为什么。
灵魂腐蚀 该用户已被删除
10#
发表于 2015-3-22 22:08:15 | 只看该作者
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-10 04:12

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表