php-push技术实现刷新功能

2016-01-29 13:36 7 1 收藏

php-push技术实现刷新功能,php-push技术实现刷新功能

【 tulaoshi.com - PHP 】

PHP-Push技术实现刷新功能
Server push 前一段时间炒得很热的推技术,不过网上大部分都是cgi的资料,偶尔看到一个法国的网站上有这么个介绍,可惜法语看不懂,只能从他的程序中看懂点东西,现整理个例子出来大家学习一下。可以用于聊天室的数据传输、网站上的新闻更新、等等各类更新频繁的页面。

以前做刷新主要通过页面上加标签。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/php/)

 
< META HTTP-EQUIV=REFRESH CONTENT="time;URL=url"


或者使用javascript的timeout+reload,不过这种刷新的方法取决于时间的设定,无法连续的数据传输且时间不好确定。采用了Server push的服务器在客户机做出一个请求后,和客户机建立一个永久的连接,然后服务器会根据客户机的请求不断地把数据包推向服务器。那些你觉察不到的延迟会让你觉得服务器的响应和你的请求已经达到了同步的程度。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/php/)

先来看一下例子再解释。

 img.php

<?php
set_time_limit(0);
$file = "./1.jpg";
$sep = "gIrLsKiCkAsSiTsAySsOoNaTsHiRt";
if(ereg(".*MSIE.*",$HTTP_SERVER_VARS["HTTP_USER_AGENT"])){
//如果是ie浏览器,直接输出就退出,IE的不支持哦,我没试出来过
header("Cache-Control: no-cache");
header("Pragma: no-cache");
header("Content-type: image/jpeg");
header("Content-size: " . filesize($file));
readfile($file);
}else{
header("Content-Type: multipart/x-mixed-replace; boundary=$sep");
//这里是关键哦,看看MIME类型说明
//你会明白
print "--$sep";
do{
print "Content-Type: image/jpeg";
readfile($file);
print "--$sep";
flush();
$mt = filemtime($file);
do{
sleep (1);
clearstatcache();
}while($mt == filemtime($file));
}while(1);
}
?


这就是一个永久执行的页面(网络不断的情况下),不断输出图片的内容,下面是调用的页面。<img src="http://img.jcwcn.com/attachment/portal"

来源:https://www.tulaoshi.com/n/20160129/1490829.html

延伸阅读
最近项目中需要用到ListView下拉刷新的功能,一开始想图省事,在网上直接找一个现成的,可是尝试了网上多个版本的下拉刷新之后发现效果都不怎么理想。有些是因为功能不完整或有Bug,有些是因为使用起来太复杂,十全十美的还真没找到。因此我也是放弃了在网上找现成代码的想法,自己花功夫编写了一种非常简单的下拉刷新实现方案,现在拿出来和大...
标签: PHP
  作者:hutuworm 来源:糊涂馋寺 目前,不少网站为了防止用户利用机器人自动注册、登录、灌水,都采用了 验证码技术。所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片, 图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输 入表单提交网站验证,验证成功后才能使用某项功能。 我们这里展示...
标签: Web开发
实例解决问题: 希望实现用户在进入系统以后(整个session的时效之内),如果收到新邮件则发出声音提示。 实现思路: 1.首页部分: body onload="init('');" // load时调用init(user); 2.js部分:用XMLHTTP实现页面局部刷新,调用check_mail.jsp对后台数据库进行检索判断并返回结果。 var xmlhttp = new ActiveXObject("Micro...
标签: PHP
异步的文件上传是在现代的AJAX实现的Web应用里面经常要遇到,必须解决的问题。但是标准的AJAX类(XmlHttpRequest)无法实现传输文件的功能。因此,这里讨论的内容就是如何在AJAX的技术的基础之上构建异步的文件上传功能。在这个功能当中需要使用到内置的框及(IFRAME)来传输文件。这个功能实现的效果是页面在上传文件的时候...
标签: Web开发
在网页中实现页面无刷新的进度条显示不是一件很麻烦的事情,但如果这个进度条要能准确反映当前事务或者复杂逻辑的执行进度,那么却并不是一件容易的事情,目前AJAX技术流行,所以本文作者试想通过AJAX来实现网页准确进度条,以銄读者。  首先应该想一个问题,复杂事务或者事务逻辑如果不按线程方式运行,运行在JAVA运行中根本无法...

经验教程

500

收藏

31
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部