A-A+
用php写的进度条
网站的进度条想必大家经常遇到过吧,在网站文件很大的情况下,如果没有一个进度条,那网站基本上都会被访客直接和谐掉,不会去等待超过 8 秒钟的时间,除非你是个很有耐心的人。。。
网站进度条的效果可以利用 JS 或者是 FLASH 的动画制作,在网站有引导页的情况下,基本上都是使用 FLASH 来制作一个精美的进度条效果,在点击进入主页时,基本上都是利用 JS 再加一张进度条的图片来实现网站进度条的效果。
那么作为 PHP 程序员,如何利用编程来实现网站进度条的效果呢?我们知道,想要网站出现进度条,必须在网站下载完所有文件之前,也就是打开之前出现,那么这里我们利用上传文件的功能来实现进度条的效果,假设要实现上传一个很大的文件,在上传完毕之前出现进度条效果,上传完毕则显示上传成功。
要上传的文件可以自定义,进度条的图片 pro.gif 也可以自己来定义,关于进度条的图片,网上有一大堆,自己去找一下,下面我们看一下源码:
<?php set_time_limit("3600"); ob_end_clean(); for($i = 1;$i <= 300; $i++ ) echo(" "); $file="jicheng.rar";//你要上传的东东 $obj="upload/website.rar";//目标文件,就是文件上传到哪里 $length="100";//进度条长度,可能不准备 $pimg="pro.gif";//进度条图片 $csize="100000";//每次拷贝的尺寸,单位字节 $size=filesize($file); if(file_exists($obj)&&is_file($obj)){ $fsize=filesize($obj); } else{ $fsize="0"; } $data=fread(fopen("$file","rb"),$size); $nums=ceil(($size-$fsize)/$csize); echo"<img src=$pimg width=".floor($length*$fsize/$size)." height=10>"; for($i="0";$i<$nums;$i++){ $start=$fsize+$i*$csize; $cdata=substr($data,$start,$csize); $msize=strlen($cdata); fwrite(fopen($obj,"ab"),$cdata); echo"<img src=$pimg width=".floor($length*$msize/$size)." height=10>"; flush(); sleep(1); } echo"上传成功"; ?>
jicheng.rar 这是要上传的文件,如果想要查看网站进度条的效果,可以找一个压缩包稍微大点的文件,pro.gif 是进度条的图片,找一个网站进度条的图片放在根目录下即可,upload/ 上传的目录文件。。我们将要上传的文件和网站进度条的文件都放在根目录下,再新建 upload/ 上传目录就可以正常进行测试。
确实对客户体验是一件好事
每天都有收获哈。
不错 用户体验很好
我怎么感觉我没看懂这个是干嘛的?
其实也是一个心灵作用吧。没进度条,老多人都会以为卡住了..然后F5
试了,效果很好,网站一定不会被访客直接和谐掉了。
要有个效果图啊
看来我得好好学学php了~
这个东西很有利于用户体验的。
不错,进度条在网站中很有必要。。。
进度条的文件体积是不是要尽量小?要不,连加载进度条就要花点时间了。