以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  我想问下httpRequest的执行逻辑  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97102)

--  作者:chen3728060
--  发布时间:2017/3/6 12:00:00
--  我想问下httpRequest的执行逻辑


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

如果按照平时单线程执行,应该判断了要下载图片,下载图片后,就执行完了,为啥还会执行else里面的输出 StringBuilder呢?

 

按照我的思路理解是,打开120.0.0.1,这样e.path是空的,应该是没有图片请求,直接执行else里的内容。为啥下载图片的效果又会存在?

 

我感觉httpRequest貌似不执行一次,而是类似报表事件的buildDetail那样,根据数据表的明细行,每行执行一次

 

------

 

我更加感觉逻辑是这样的

1输入127.0.0.1

2HttpRequest事件触犯,先判断e.path,发现是空的,然后执行else里的内容

3执行else里时,发现<img src>这个请求图片指令,于是再重新触发HttpRequest事件,往事件里输入127.0.0.1/abc.jpg 的请求

4HttpRequest事件触犯,先判断e.path,发现是发现存在abc.jpg这玩意,于是执行else之前的发送文件功能

[此贴子已经被作者于2017/3/6 12:03:50编辑过]

--  作者:狐狸爸爸
--  发布时间:2017/3/6 12:03:00
--  
浏览器其实是分两步来显示这个网页的:

1、首先获取网页内容:

我想显示一个图片<br/>
<img src=\'abc.jpg\'>

2、然后浏览器解析网页内容,发现要显示一个图片"abc.jpg",如是又向服务器发送访问请求:

http://127.0.0.1/abc.jpg

要显示图片,服务器必须对这个访问请求对出响应,将后台的图片"abc.jpg"发送给客户端的浏览器,浏览器则显示收到的图片。

实际上不单单是图片,网页中引用的任何文件,包括js、css等等,都会单独向服务器发出下载这个文件的请求,服务器必须对此做出响应。

--  作者:chen3728060
--  发布时间:2017/3/6 12:05:00
--  回复:(狐狸爸爸)浏览器其实是分两步来显示这个网页...
懂了!跟我感觉的一样
--  作者:chen3728060
--  发布时间:2017/3/6 12:11:00
--  回复:(狐狸爸爸)浏览器其实是分两步来显示这个网页...
狐爸,你最好把这个执行逻辑写进去新的帮助里,因为我们在群里已经有人疑问过这个执行逻辑,按照单线程的思路执行不通,想不明白,当时也没人能想通,有必要解释一下
--  作者:狐狸爸爸
--  发布时间:2017/3/6 12:12:00
--  
好的
--  作者:chen3728060
--  发布时间:2017/3/6 12:15:00
--  回复:(狐狸爸爸)好的
感觉这执行逻辑很像递归算法,稍微有地方控制不好的,能搞到一个死循环出来图片点击可在新窗口打开查看
--  作者:有点色
--  发布时间:2017/3/6 12:50:00
--  
以下是引用chen3728060在2017/3/6 12:15:00的发言:
感觉这执行逻辑很像递归算法,稍微有地方控制不好的,能搞到一个死循环出来图片点击可在新窗口打开查看

 

不会死循环不至于吧?出现概率很小,而且死循环没什么大问题。