站点加载顺序reg

时间:2017-06-16 04:01:02

标签: javascript cross-browser

我有一个运行IIS / Asp.net的网站的登录表单,在预订时因为非常缓慢。

在LOGIN PAGE我正在做:

$("#submit1").trigger('click') //this will login into PAGE1 using form.submit()

setTimeout(function(){
window.location = "/PAGE2";
},500);

PAGE1有一个到PAGE2的GET链接。

我想知道是否会将我带到PAGE2或PAGE1?

因为IIS服务器将首先处理表单提交并发送PAGE1内容。然后它将发送GET请求PAGE2内容。

浏览器(Chrome和Firefox)的行为如何?如果它第一次收到POST响应,那么它会丢弃PAGE2 GET响应吗?

或者它会用GET响应(PAGE2)覆盖POST响应(PAGE1)

假设收到POST响应(PAGE1),现在站点显示PAGE1。 1分钟后,收到GET响应(PAGE2)。现在浏览器会做什么?

我想描绘序列(这是一个示例): enter image description here

<小时/>
enter image description here

2 个答案:

答案 0 :(得分:1)

代码

$("#submit1").trigger('click') //this will login into PAGE1

setTimeout(function(){
window.location = "/PAGE2";
},500);

这将触发标识为submit1的元素上的click事件。假设它是一个登录按钮。

之后

有两种可能性,因为您没有提到是否通过Ajax执行此操作。

  1. 如果您使用了ajax,那么如果登录过程在500mS内完成,那么您将成功登录PAGE1并重定向到PAGE2。因为它是ajax。

  2. 如果您没有使用ajax,那么代码

    的setTimeout(函数(){ window.location =“/ PAGE2”; },500);

  3. 将被忽略。因为在第一个事件本身,它会将您带到PAGE1,并且Login Page中此脚本的生命周期将结束。所以,你不会到PAGE2。如果您想转到PAGE2,那么您应该在PAGE1中添加上述代码。

    注意

    如果脚本没有通过Ajax生成,请求GET和POST对脚本的生命周期无效。

    更新

    没有。 POST和GET都不会一次触发。

    首先POST将触发。

      

    如果它第一次收到POST响应,那么它会丢弃PAGE2 GET响应吗?

    因为GET请求来自登录页面,并且作为POST消息的结果,您已经被重定向到Page1。因此,GET响应甚至不会被浏览器捕获。

答案 1 :(得分:1)

换句话说,我理解你的问题是“我的浏览器会加载哪个页面?”

broswer将加载它最近提出的任何请求。

如果您的按钮点击请求超过500毫秒来加载新的页面资源,则按钮点击请求应该被覆盖以加载第2页。如果页面在500毫秒之前加载,那么它应该加载第1页..它有点像询问如果我在地址栏中输入www.google.com,请按Enter键然后输入www.facebook.com ...您认为会加载哪个资源?...您最近提出的请求。

顺便说一句,window.location ='...'会像你点击asp按钮那样做一个服务器请求。

我建议你打开谷歌浏览器网络标签,调查/观察你以什么顺序对服务器进行的调用......