Foxtable(狐表)用户栏目专家坐堂 → 一条代码的逻辑没看懂


  共有2324人关注过本帖树形打印复制链接

主题:一条代码的逻辑没看懂

帅哥哟,离线,有人找我吗?
hgzvip
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:74 积分:800 威望:0 精华:0 注册:2015/9/5 18:02:00
  发帖心情 Post By:2017/11/9 20:18:00 [显示全部帖子]

菜鸟一枚,
我把代码改了一下来测试(增加了四个MessageBox):
Dim fl As String = "d:\web\" & e.path '合成含路径的文件名
    MessageBox.Show(fl) '显示路径
If filesys.FileExists(fl) '如果是请求一个已经存在的文件
    MessageBox.Show("1")
    e.WriteFile(fl) '则发送此文件
Else
    MessageBox.Show("2")
    Dim sb As New StringBuilder
    sb.Appendline("我想显示一个图片<br/><br/>")
    sb.AppendLine("<img src='abc.jpg'>")
    e.WriteString(sb.ToString())
    MessageBox.Show("3")
End If

然后在浏览器中加载的时候,弹窗是这样一个顺序:
d:\web\【浏览器空白】 → 2【浏览器空白】 → 3 【浏览器出现文字‘我想显示一个图片’,没有图片】 → d:\web\abc.jpg 【浏览器只有文字】 → 1 【只有文字】 → 【浏览器出现图片】

照这样看,代码是先合并了一个不完整的路径“d:\web\”,然后执行了“Else”,出现了文字,没有图片,并在这里获得了一个e.path,获取了一个完整的路径“d:\web\abc.jpg”,最后又执行一次,在“If”中显示图片,然后结束。

看帮助确实看不太明白。

在两个地方回了这个贴,多一点见光的机会,希望对大家有帮助。

 回到顶部
帅哥哟,离线,有人找我吗?
hgzvip
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:74 积分:800 威望:0 精华:0 注册:2015/9/5 18:02:00
  发帖心情 Post By:2017/11/9 20:37:00 [显示全部帖子]

再回头看帮助文件《我想显示一个图片》,突然理解了文中所说的:

浏览器其实是分两步来显示这个网页的:
1、首先获取网页内容:
我想显示一个图片<br/>
<img src='abc.jpg'>
2、然后浏览器解析网页内容,发现要显示一个图片"abc.jpg",如是又向服务器发送访问请求:
http://127.0.0.1/abc.jpg

正如版主所言,httprequest被触发了两次:

第一次是我们访问127.0.0.1的时候,浏览器获得了网页的代码:
我想显示一个图片<br/>
<img src='abc.jpg'>
然后浏览器开始解析这些内容并试图显示,发现有一个图片要显示(第二行),于是又去访问一次127.0.0.1,这次是带着完整的路径去的,所以能把图片下载下来并显示了。

这样理解不知道对不对



 回到顶部