现有一个如下图一样的表单 里面的文本域 是通过FOR循环 产生的 具体条数没有限定 现在遇到的问题是如果传个几十条速度可以 但上百条就会很慢
由于实际列数还不只这5列 有些列会跟据产品类型 会显示出来 有的产品没有相关类型就不显示 所以不好实现用EXL 上传
现在的主要问题是从 表单页提交到 执行页时很慢 实际执行页写入数据库速度是可以的 内容是通过EXL表格复制在里面的
代码如下
<form id="form1" name="form1" method="post" action="">
<label>
<input name="cpts" type="text" value="30" size="5" />
</label>
<label>
<input type="submit" name="Submit" value="提交" />
</label>
</form>
<br />
<% if request("cpts")<>"" then %><!-- 要添加的产品条数不为空时打开产品添加界面 -->
<form id="form2" name="form2" method="post" action="cpfb2.asp" >
<table width="600" border="0" cellspacing="0" id="tbl">
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<%
Dim p3 '通过指定的条数让列表循环指定的次数
For p3 = 1 To request("cpts")
%>
<tr>
<td><input name="gg1<%=p3%>" type="text" value=" " /></td>
<td><input name="gg2<%=p3%>" type="text" value=" " /></td>
<td><input name="gg3<%=p3%>" type="text" value=" " /></td>
<td><input name="gg4<%=p3%>" type="text" value=" " /></td>
<td><input name="gg5<%=p3%>" type="text" value=" " /> </td>
<input name="id" type="hidden" value="<%=p3%>">
</tr>
<%
Next
%>
</table><br />
<input type="submit" name="Submit2" value="发布"/>
</form>
<p>
<% end if %>
写入页面如下
<%
Dim StarTime
StarTime = Timer()
%>
<%
dim id4
id4=request.Form("id")
nid4=split(id4,", ")
eid4=ubound(nid4)
for i=0 to eid4
dim rs4,sql4
set rs4=server.CreateObject("adodb.recordset")
sql4="select * from cpbiao"
rs4.open sql4,db,3,3
rs4.AddNew()
rs4("gg1")=request.Form("gg1"&nid4(i))
rs4("gg2")=request.Form("gg2"&nid4(i))
rs4("gg3")=request.Form("gg3"&nid4(i))
rs4("gg4")=request.Form("gg4"&nid4(i))
rs4("gg5")=request.Form("gg5"&nid4(i))
rs4.update()
rs4.close
set rs4=nothing
next
db.close
set rs4=nothing
%>
<%
Dim EndTime
EndTime = Timer()
%>
运行时间:<%=FormatNumber((EndTime - StarTime)*1000,3)%>毫秒 <a href="index.asp" >返回</a>
写入代码发出来看下。你如何确定写入数据库块,而提交数据慢?
数据量大的话,提交慢还和你使用的带宽和服务器带宽有关
数据量如果很大,可以考虑用ajax分批提交,而不是一次性提交完毕。。这样服务器压力也没那么大~
对你有帮助能点个采纳吗,谢谢~~有什么问题可以继续问~
经过测试,客户端可以用pako.gzip压缩数据,内容重复多的话至少可以压缩1半左右,服务器端用Chilkat Gzip解压得到数据。有需要站内联系~~
建议如下:如有帮助,请采纳一下,谢谢!
1.用Request.BinaryRead()读取。
2. 大文本处理成多个小文本域,再提交
你应该试一下异步传输。