免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4201 | 回复: 12
打印 上一主题 下一主题

[HTML] 怎么控制html代码的执行顺序? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-27 08:16 |只看该作者 |倒序浏览
GD生成的图片,同时把图片的一些文字信息保存到session数据表(记录session数据)
输出<img src='xxx.php... '>以后, 马上处理session里面的文字数据(显示它)
可总是不能从sessoin取到最新数据, 都是上一次的

我想是图片生成太慢, 后面的代码先执行了,就把图片生成时间写到session数据表
在输出图片的代码前面先从session表读一次时间,记录到变量
在输出图片的代码后面用循环从session表读时间和图片文字信息,直到时间跟先读出来的不一样
...然后处理图片的文字信息
结果是图片不显示了,session表也不写(表里的文字信息和时间都没变化)
看来还是后面的循环代码耽误了前面的图片生成过程
咋整?

[ 本帖最后由 HonestQiao 于 2005-11-27 14:50 编辑 ]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
2 [报告]
发表于 2005-11-27 14:53 |只看该作者
首先,你的描叙是在是太混乱了,我不得不在对你的描叙的分析之中败阵下来。

其次,要么你主动改变SESSION的内容,要么客户端与服务器经过一次交流,一般SESSION应该是不会改变的。

论坛徽章:
0
3 [报告]
发表于 2005-11-27 21:40 |只看该作者
我也觉得没把问题简化好, 是这样的:
----------
背景:对于图片和文字混合的网页, 服务器优先处理请求文字的线程....所以在浏览器上,文字显示没完成的时候,图片是不会出现的(即使内容排在文字前面)
需求: 服务器按照html代码的顺序依次处理并发回给浏览器...即处理图片前的文字->处理图片->处理图片后的文字
这个需求的原因: 图片和图片后的文字是动态生成,而且是相关的

[ 本帖最后由 shrui 于 2005-11-27 21:41 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2005-11-27 21:50 |只看该作者
不会啊,是图片显示比较慢,有先后的说法吗?你看看log记录就知道了

论坛徽章:
0
5 [报告]
发表于 2005-11-28 04:49 |只看该作者
access log是看不出来的......先请求xxx.php然后请求xxx.png,
试验一下让它sleep若干秒,图片就不会出来
服务器这么干有它的道理, 但我想可能有别的选择
......现在某个家伙需要它单线程处理,有没有法子通知它:
"hay! 你干活很棒,但这次能不能按我的意思.....像执行一个普通程序那样干呢?"

论坛徽章:
0
6 [报告]
发表于 2005-11-28 05:07 |只看该作者
原帖由 HonestQiao 于 2005-11-27 14:53 发表
...其次,要么你主动改变SESSION的内容,要么客户端与服务器经过一次交流,一般SESSION应该是不会改变的。

qiao兄,我是用一个heap表实现的session
所以写进去以后可以马上读,不必等下个页面的.......
我的问题可能比较怪, 但可能也很重要
以前,我写论坛代码,想在客户端先检验一下验证码,免得人家白白按了"提交"
就把验证码的md5用hidden做在表单里面
由于我在这里所说的原因,这个md5总不是当前验证码的md5,
只好放弃.....

[ 本帖最后由 shrui 于 2005-11-28 05:09 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2005-11-28 07:28 |只看该作者
GD生成的图片,同时把图片的一些文字信息保存到session数据表(记录session数据)
输出<img src='xxx.php... '>以后, 马上处理session里面的文字数据(显示它)
可总是不能从sessoin取到最新数据, 都是上一次的


呵呵,上次在一个网页里处理验证码的session,也总是得到上次的session,而不是这次显示的数字.最后另做一个页面用相同的代码就ok了.不过偶想还是应该有法子在同一网页处理的.没试过

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
8 [报告]
发表于 2005-11-28 10:05 |只看该作者
你这个样子好像不是很现实的,或者你自己的思路混乱。

我看看是否猜测的正确:
1.假设:index.php里面调用了gd.php
2.gd里面会生成最新的验证码的session记录值
3.而你想要index.php得到这个值
不知道是否正确?

<img src=gd.php>仅仅在index.php里面生成,而没有被用户请求,那么这个时候session记录值还并没有进行处理的,你如何采用预先的手段得到这个值呢?

论坛徽章:
0
9 [报告]
发表于 2005-11-28 12:45 |只看该作者
神了!.......太混乱

实例化先:

  1. <?php
  2. //sleep n seconds here
  3. ?>
  4. 这里的任何代码就不继续执行啊,正常啊,不管是
  5. <img src=xx.php> 或 <img src=xx.gif>
复制代码



不 sleep 时,就正常顺序解析啊(HTML解析是你的客户端完成,由它发现并去请求 相关的线程)

跟图片是不是动态生成的没太大关系

你的意思是混合在一起时,想控制哪一种显示出先?那可能得做一个专门的客户端,而且返回的内容不能是HTML

最好是XML,好进行分析


不然它就是顺序解析的啊

js 的话,有一种可能,比如控制图片先出来,不过不好

1 文字在某一个span或div里或表格里
2 不断循环判断图片大小是否 >-1 ,是的就让放文字的那地方 可视....

这种当然也是顺序解析的,不过用JS控制了而已

不知LZ啥意思....

论坛徽章:
0
10 [报告]
发表于 2005-11-29 01:51 |只看该作者
原帖由 HonestQiao 于 2005-11-28 10:05 发表
你这个样子好像不是很现实的,或者你自己的思路混乱。

我看看是否猜测的正确:
1.假设:index.php里面调用了gd.php
2.gd里面会生成最新的验证码的session记录值
3.而你想要index.php得到这个值
不知道是否正确?

<img src=gd.php>仅仅在index.php里面生成,而没有被用户请求,那么这个时候session记录值还并没有进行处理的,你如何采用预先的手段得到这个值呢?

呵呵,成了讨论session机理了
我先解释一下我的session实现(说明问题不在这里)....排除这个误解
我在mysql建立了一个heap表(名叫session)来记录会话信息,并且定义了一个类来处理会话.
在代码里面:
  1. $sess->write("any",823423);
  2. $sess->read("any");
复制代码
连续2句是可以的,第二句读出的是上一句写进去的内容

但是,如果是
  1. echo "<img src='gen_img.php......'>";//gen_img.php里面用同样方法往session的any字段成功写进数据
  2. $sess->read("any");
复制代码
就不行了,读出来的不是gen_img.php最近一次写进去的,而是上次的
不过现在这只是讨论理论问题了,实际问题已经走弯路解决

[ 本帖最后由 shrui 于 2005-11-29 02:17 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP