CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  JavaScript

想让服务器为浏览者导航,请高手进来看一看?????

楼主leelong80(小龙)2005-05-17 12:00:05 在 Web 开发 / JavaScript 提问

我想实现这样一个功能.  
          1.页面index.asp  
              用户添加的数据.提交  
    2.页面save.asp   存储数据,用成aaaa.htm静态文件.  
   
    3.我想让他看一个临时页.  
                  内容正在生成.aaaa.htm  
          4.当生成成功时,把用户导航到   aaaa.htm,错了时就导航到别的页面.("就这不明怎么写")  
      
          有点像CSDN发贴的过程那样就行,我看了看,CSDN是用Cookies做的.但不知道那个临时页面是怎么写还可以读服器状态.生成完成时就会到,用成之的页面了.  
      
  谢大家帮忙!!!!!!!万分感谢!!!!!!!!,如果可以请给个小例子!!!!!!  
  问题点数:100、回复次数:21Top

1 楼meizz(梅花雪)回复于 2005-05-17 13:17:04 得分 10

save.asp:  
  <html>  
  内容正在生成.aaaa.htm  
  </html>  
  <%  
      dim   url  
      url   =   "aaaa.htm"   ''这里做你的ASP后台处理  
  %>  
  <script   language=JavaScript>  
  window.location.href   =   "<%=   url   %>";  
  </script>Top

2 楼leelong80(小龙)回复于 2005-05-17 14:39:08 得分 0

TO:meizz(梅花雪)  
          谢谢!梅大哥!你说的方案不行,ASP是一次把内容Resposne   到客户端的.  
          我做一个实验,他没显视"你好...",是一起发Resposne   出来的.  
  -----------------------------------------------------------------------  
  <html>  
  内容正在生成.aaaa.htm  
  </html>  
  <body>  
  你好!·#¥!·#¥!·#¥!·#¥!·#¥!·#¥!·#¥!·#¥  
  <%  
      dim   url  
      for   j=1   to   1000  
      for   i=1   to   10000  
      '''''''''这里会化一定的时间  
      next  
      next  
      url   =   "aaaa.htm"   ''这里做你的ASP后台处理  
  %>  
  <script   language=JavaScript>  
  window.location.href   =   "<%=   url   %>";  
  </script>  
  </body>Top

3 楼leelong80(小龙)回复于 2005-05-17 14:42:06 得分 0

就像CSDN发贴时的样子,请大家帮忙.  
  --------------------------------------------  
          添加完成,正在生成静态页面,请稍候!!!  
     
  --------------------------------------------  
  之后他会到新页面去,不会他是指定了个时间来刷新吧.....  
  请大家帮忙.....Top

4 楼commonly(fanren)回复于 2005-05-17 16:15:00 得分 50

在save.asp中  
   
  <html>  
  <body>  
  <table><tr><td>内容正在生成.aaa.htm</td></tr></table>  
   
  <script>  
   
  var   timerflag   =   1;  
  function   beforeLoad(){  
  if(document.readyState   !=   "complete")  
  {  
  if(timerflag   >   30)//30秒内,页面仍未处理完毕,报网络超时  
  {  
  timerflag   =   1;  
  alert('连接网络超时!');  
  return;  
  }  
  timerflag++;  
  setTimeout("beforeLoad()",1000);  
  }  
  else  
  {  
  timerflag   =   1;  
  afterLoad();  
  }  
  }  
  function   afterLoad(){  
  window.location.href   =   "aaaa.htm";  
  }  
  </scirpt>  
   
  <%  
      dim   url  
      url   =   "aaaa.htm"   ''这里做你的ASP后台处理  
  %>  
  </body>  
  </html>Top

5 楼commonly(fanren)回复于 2005-05-17 16:21:11 得分 0

如果保存速度太快。有可能来不及看清楚页面。。你可以用以下这段,使页面最少显示10秒  
   
  在save.asp中  
   
  <html>  
  <body>  
  <table><tr><td>内容正在生成.aaa.htm</td></tr></table>  
   
  <script>  
   
  var   timerflag   =   1;  
  function   beforeLoad(){  
  if(document.readyState   !=   "complete")  
  {  
  if(timerflag   >   30)//30秒内,页面仍未处理完毕,报网络超时  
  {  
  timerflag   =   1;  
  alert('连接网络超时!');  
  return;  
  }  
  timerflag++;  
  setTimeout("beforeLoad()",1000);  
  }  
  else  
  {  
                                      if(timerflag   <   10){//让这个页面最少显示10秒  
                                              timerflag++;  
                                              setTimeout("beforeLoad()",1000);  
                                      }else{  
          window.location.href   =   "aaaa.htm";  
                                      }  
  }  
  }  
  </scirpt>  
   
  <%  
      dim   url  
      url   =   "aaaa.htm"   ''这里做你的ASP后台处理  
  %>  
  </body>  
  </html>  
       
  Top

6 楼leelong80(小龙)回复于 2005-05-17 16:56:01 得分 0

TO:commonly(fanren)  
          这个方法是用定刷新来做了,   谢谢你,有没可以从服务反回一个状太来做这件事呢???  
          谢谢!!!Top

7 楼leelong80(小龙)回复于 2005-05-18 08:24:58 得分 0

自己顶一下.Top

8 楼commonly(fanren)回复于 2005-05-18 13:08:33 得分 0

那就换种做法:在index.asp页面用javascript的读取xml文件的做法,在save.asp中把返回信息用xml文件返回主页面  
  index.asp中:  
  <html>  
  <body>  
  <form   id="form1"   name="form1">  
  <input   type=button   onclick="save()"   value="保存">  
  </form>  
  <table   id="tb_handing"   style="diplay:none"><tr><td>内容正在生成.aaa.htm</td></tr></table>  
   
  <script>  
  function   getXml(url){  
  var source=new   ActiveXObject("Microsoft.XMLDOM");  
  if(source==null){return;}  
  source.async=false;//异步下载  
  source.validateOnParse=true;  
  try{  
  source.load(url);  
  var   RootElement=source.documentElement;  
  source   =   null;  
  return   RootElement;  
  }  
  catch(e){  
  alert('网络不通畅导致下载数据失败,请检查网络状况!');  
  source   =   null;  
  return   null;  
  }  
  }  
   
  function   save(){  
          document.getElementById('tb_handing').style.display   =   "inline";  
          document.Form1.style.display   =   "none";  
          RootElement=getXml("save.asp?param=p")//请注意要把要传递的参数显示输入  
          if((RootElement.childNodes.item(0).text)   ==   "1"){//保存成功  
                window.location.href   =   "aaaa.htm";  
          }  
  }  
  </script>  
  </body>  
  </html>  
  在save.asp中:  
  <%   @LANGUAGE="vbscript"   %>  
  <%  
  Response.ContentType   =   "text/xml";  
  Response.Charset   =   "gb2312";  
  %>  
  <%  
  dim   ret=0  
  '做保存处理,成功后把ret=1  
  %>  
  <%=ret%>Top

9 楼leelong80(小龙)回复于 2005-05-18 14:43:40 得分 0

TO:commonly(fanren)  
          谢谢,我用一用看一看.谢谢.Top

10 楼leelong80(小龙)回复于 2005-05-19 10:11:10 得分 0

TO:commonly(fanren)  
          我用了,不过有一点问题我想问一下.save.asp 为知为什么打不开.  
    它是什么作用,  
  Response.ContentType   =   "text/xml";  
  Response.Charset   =   "gb2312";  
    我没有用过,还要打什么XML的组件吗?  
    谢谢.....昨晚看半天没找到什么原因!  
  Top

11 楼leelong80(小龙)回复于 2005-05-19 10:14:31 得分 0

TO:commonly(fanren)  
    HTTP   500   -   内部服务器错误   ,是内部500错误!  
   
    代码不过10行,没找原因,也没有错误提示.  
      
    请您帮忙!谢谢Top

12 楼tonl8(tonl8)回复于 2005-05-19 10:22:46 得分 40

这个其实很简单  
  save.asp:  
  <html>  
  内容正在生成.aaaa.htm  
  </html>  
  <%  
      dim   url  
      url   =   "aaaa.htm"   ''这里做你的ASP后台处理  
  %>  
  <script   language=JavaScript>  
  window.location.href   =   "<%=   url   %>";  
  </script>  
  把上面的代码作两个文件处理:  
  save.asp的代码是:  
  <html>  
  <body>  
  正在生成AAA.htm静态文件,请等待...  
  <iframe   src=save2.asp>  
  </iframe>  
  </body>  
  </html>  
  save2.asp  
  <%  
      dim   url  
      url   =   "aaaa.htm"   ''这里做你的ASP后台处理  
  %>  
  <script   language=JavaScript>  
  window.location.href   =   "<%=   url   %>";  
  </script>  
  其中还有一个接受表单数据传送的问题,你自己处理一下  
  Top

13 楼leelong80(小龙)回复于 2005-05-19 10:29:24 得分 0

save.asp   没有问题了,我改了改  
  ----------------  
  <%  
  Response.ContentType   ="text/xml"  
  Response.Charset   ="gb2312"  
  dim   ret  
  ret=0  
  For   i=1   to   1000  
  For   j=1   to   10000  
  ret=1  
  Next  
  Next  
  Response.Write(ret)  
  %>  
  不过在index.asp点保存时,script   Error!,之后错误就没有了,这样的错误不知道怎么找,请帮忙,没有人来呢.  
  Top

14 楼commonly(fanren)回复于 2005-05-19 10:35:29 得分 0

不好意思。。我有点小疏漏。。  
  save.asp中应该是这么写的(我程序里面使用的时候直接从数据库中出来的ret值是xml格式了。移植过来的时候忘了修改了。。。呵呵)  
  <%   @LANGUAGE="vbscript"   %>  
  <%  
  Response.ContentType   =   "text/xml";  
  Response.Charset   =   "gb2312";  
  %>  
  <%  
  dim   ret=0  
  '做保存处理,成功后把ret=1  
  %>  
  <?xml   version="1.0"   encoding="utf-8"   ?>    
  <ret>  
  <%=ret%>  
  </ret>Top

15 楼commonly(fanren)回复于 2005-05-19 10:40:05 得分 0

其实tonl8(tonl8)   那种做法也是可行的。。而且比较简单。   。。  
  不过有点小疏漏  
  save2.asp  
  <%  
      dim   url  
      url   =   "aaaa.htm"   ''这里做你的ASP后台处理  
  %>  
  <script   language=JavaScript>  
  window.parent.location.href   =   "<%=   url   %>";//这里要这样才行啊。。。呵呵  
  </script>  
  Top

16 楼leelong80(小龙)回复于 2005-05-19 10:40:36 得分 0

TO:tonl8(tonl8)  
          谢谢你,你的方法也很好,不过这时你新打开的页面是 iframe   内的  
        save.asp的页面还是有"正在生成AAA.htm静态文件,请等待"显视着.  
    window.location.href   我想把这样方法换成   windows.open("aaaa.htm")  
          可这样的有时会被当广告弹出页吧....  
  Top

17 楼commonly(fanren)回复于 2005-05-19 10:50:22 得分 0

啊哦。。对不起。。我这几天脑袋有点进水。。。上面的说法是错误的。。  
  因为tonl8(tonl8)的那种写法。。。  
  你的那种在帧里面用window.location.href=""只在帧里面导航。。没启到整个页面导航的作用啊。。  
  用window.parent.location.href=""就又走回到楼主原来的老路上去了。。。  
  晕。。。。。。。。。。。。。。。。。。。。。。。。。。。  
  我没自己去实验。。。仅从理论上讨论。。。有不对的地方。。敬请指教。。。Top

18 楼leelong80(小龙)回复于 2005-05-19 11:08:59 得分 0

TO:commonly(fanren)  
          谢谢成功了!没有问题很好用的.不过index.asp的Save()中的DHTML有点问题,我把他去掉了.  
    万分感谢!!!!!!!!!!!!!!!!!!!!!!!  
  -------------------------------------------------------------------------------------  
    function   save(){  
             //document.getElementById('tb_handing').style.display   =   "inline";  
             //document.Form1.style.display   =   "none";  
             RootElement=getXml("save.asp?param=p")//请注意要把要传递的参数显示输入  
             if((RootElement.childNodes.item(0).text)   ==   "1"){//保存成功  
                   window.location.href   =   "aaaa.htm";  
             }  
  ---------------------------------------------------------------------------------------  
                  我不太知道原理,你这样写是用"异步下载"它是定时的服务器控制的??  
      学习一下.Top

19 楼commonly(fanren)回复于 2005-05-19 12:00:21 得分 0

。。。应该是由客户端控制的。。。这中间涉及到xml组件和网络传输的事情。。。我也没有深入研究。。。不好意思。。。  
  这就是做应用的人的悲哀。。。什么东西都没办法深入。。。整天被项目追着跑。。。弄得自己觉得自己什么都没底。。。感觉什么都不会。。。Top

20 楼commonly(fanren)回复于 2005-05-19 12:01:48 得分 0

建议以后不要花太多心思在这些技巧上了。。。有空多学学操作系统。。。学点编译原理。。。Top

21 楼leelong80(小龙)回复于 2005-05-19 12:31:31 得分 0

TO:commonly(fanren)  
          是呀,天天就是作东西,也没有时间学呀,在中国只好如此,大家只学习别人定的软件规则,自己很少去想,过一段时间又出新东西了,又是表面去用,HI!,生活呀,无耐..........  
   
          谢谢....非常感谢.  
   
  Top

相关问题

  • 请问各位怎样才能取得浏览者连接服务器的网络速度?
  • 重写服务器控件 DataGrid 时发生奇怪问题,求高人看一看!!
  • 谁有可以上大富翁的代理服务器的地址?如可用,给150分!看一看我的提问,从不会"拖分"的 : )
  • 看一看吧!!!
  • 看一看嘛
  • 看一看
  • 大虾看一看~~~~
  • 帮我看一看;
  • 进来看一看
  • 服务器

关键词

  • 页面
  • 内容
  • asp
  • 生成
  • aaaa
  • htm

得分解答快速导航

  • 帖主:leelong80
  • meizz
  • commonly
  • tonl8

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo