仓酷云

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

[学习教程] ASP编程:Form域顶用Post提交容量年夜的数据

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:43:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。 之前在事情中碰到一个成绩,当表单发送的数据量很年夜时,就会报错。查阅MSDN懂得到,缘故原由是微软对用Request.Form()可吸收的最年夜数据限定为100K字节。
  微软倡议用Request.BinaryRead()读取表双数据,但因为这类办法读出的是二进制数据,必要对读出的数据逐字节举行剖析,天生成心义的字符串(MSDN上的一段程序就是如许写的,但它并没有思索诸如标点标记等本义字符必要举行特别剖析)。假如说这类办法关于纯英文体系委曲可用的话,则关于中文体系来讲就有极年夜的贫苦,由于汉字是用两个字节暗示的,而读出的二进制数据自己其实不能判别是英文仍是汉字(不然就不是二进制数据,而是字符串了^-^)。如许的话就必需懂得汉字的编码纪律才干举行剖析。最初,即便算法上能把这些都剖析出来,人人想一想关于一个MB级的巨型字符串逐字节举行剖析,其效力何如?以是,此路欠亨!
  不外,举措老是有的。一入手下手我觉得是全部表双数据的总和不克不及凌驾100KB,厥后发明这是对表单内每一个域的限定。成绩的办理举措是,关于一个必要发送年夜数据的域,在提交表单前将数据拆分为小于限额的数份,分离放在数个hidden域中,同时把原有域清空,再正式提交表单。服务器端仍是用Request.Form()读取各hidden域的数据,再依照按次把他们拼接起来就好了。次要代码以下:
  注重:必要在Form中的HTML代码内指定一个DIV,以便向个中静态拔出hidden域。
  ====客户端示例代码====
  <SCRIPTlanguage=javascript>
  file://数据拆分,并放到响应的hidden域中,在Form的onSubmit事务中引发
  functionfnPreHandle()
  {
  variCount;file://拆分为几个域
  varstrData;file://原始数据
  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
  DimiintFieldCount=Request.Form("hdnCount")Fori=1TointFieldCount
  strData=strData&Request.Form("hdnBigfield"&i)
  NextResponse.WritestrData
  %>
ASP一般认为只能运行在IIS上,正如前面所提到的,这并不是十分正确,事实上,ASP也能运行在Apache上。ApacheASP可在任意Apache服务器上运行有限的ASP功能,所需做的,只需打开mod_perl。
海妖 该用户已被删除
沙发
发表于 2015-1-19 21:43:09 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
柔情似水 该用户已被删除
板凳
发表于 2015-1-25 19:36:19 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
谁可相欹 该用户已被删除
地板
发表于 2015-2-3 17:43:15 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
深爱那片海 该用户已被删除
5#
发表于 2015-2-9 04:18:25 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
活着的死人 该用户已被删除
6#
发表于 2015-2-26 21:37:46 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
简单生活 该用户已被删除
7#
发表于 2015-3-8 18:12:12 | 只看该作者
运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
兰色精灵 该用户已被删除
8#
发表于 2015-3-16 09:58:15 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
只想知道 该用户已被删除
9#
发表于 2015-3-22 22:10:28 | 只看该作者
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-1-6 17:15

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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