搜索引擎免费登陆口  
人才招聘 | 设为首页 | 加入收藏
 
       
 
首 页 域名注册 虚拟主机 主机托管 企业邮局 网站推广 平面设计 付款方式 会员登陆 联系我们 新版网站
 
本站公告:
  好消息---网站建设送CN域名和空间计数器搜索引擎登录!!!  03-12
今天是
 
域名主机
域名注册
域名查询
虚拟主机
主机租用
  域名管理
通用网址
主机托管
企业邮局 
网站建设|网站维护
网站建设套餐
网站建设报价
网站改版
程序开发报价
企业网站解决方案
行业网站解决方案
办公自动化系统
产品与服务
信息发布系统
产品管理系统
新闻管理系统
人才招聘系统
会员注册系统
在线调查系统
在线购物系统
网站统计系统
BBS论坛 在线留言
 计数器 网站优化
 

计数器

发 布 者:亿美时代  阅读次数:6068
 一、关于计数器
  计数器,就是当你打开一个web页面时,该页面会调用一段相关程序,使一组数字自动加1。
  如果你有个人主页,想必你一定会在首页上安装一个计数器,计数器的动态数据,对于浏览者及网站主人都是一个不可或缺的信息,它的意义是众所周知的。
  纵观整个网络世界,几乎找不到没有计数器的首页,有的甚至在分页及某些具体的项目上也设有计数功能,那么这些计数器是如何得到的呢?
  大致有以下几种:
1、申请计数器
  这大概是个人网站最普遍的解决方案了,只要你在搜索引擎内键入“计数器”关键词,你就会找到大量的计数器提供网站,而且都是免费的。但是,这种方式是不是有种“寄人篱下”的感觉,有的还不能设置初值及不能安放在二个页面上等限制,令人不能接受的是计数器运行不稳定,速度慢,更糟糕的是它说没就没了。
2、付费空间附加计数器
  你一旦购买了一个付费空间,供应商一般会附加提供一个计数器,这种计数器需要你按照他们的指定步骤自行安装,运行速度快、稳定,有一定的加工装饰余地。
3、自己制造计数器
  这大概是每位站长梦寐以求的方式了,计数器自己做,不仅使你的网络作品全面“私有化”,而且还可以彻头彻尾地进行个性化构思,使其不限于计数功能,兼有极强的观赏性及装饰性,甚至实现动画计数,使你的页面锦上添花! 本讲的目标就是让所有在座朋友拥有自己的计数器,并且不是司空见惯的文本或者gif图像计算器,它是目前还较罕见的flash动画计数器,让你放心的是,本动画计数器不涉及数据库!
  要实现这一目标,唯一的要求就是一个能支持ASP的空间!
  我们知道,支持ASP的空间,目前几乎已经成为网络空间的标准,许多免费空间也不例外,如果你实在不知道自己空间的技术信息,你可以把某个HTML文件改为asp扩展名,运行正常就OK了。
二、动态数据基础
  上一节已经说了,打开页面,或者刷新,计数器自动加1,这就是“动态数据”,早期的网站,几乎全是静态页面,网络发展到今天,一个网站如果没有动态数据,那么显然是不合时宜了,留言板、自动链接、论坛、站内BB机、新闻系统、自动文件系统、自动下载、上传系统乃至商务系统均由“动态数据”支撑,而计数器仅是其最基本最实用的一种。
  有朋友问了,在网页中我能用Js、VBs等设置变量,也能实现动态数据,另外,在flash中我能用“动态文本”进行自动计数,这不就是动态数据吗!
  错了!“动态数据”的一个基本要素就是能存储、更新,能进行维护等操作。
  网页语言已经相当强大,Flash中的AS编程几乎无所不能,实现“交互”动画易如反掌,但是它们却不能实现计数器功能,原因就是它们没有维护动态数据的能力!
  动态数据的维护一般在服务器端进行,数据的存取必需借助于某种程序语言,比如CGI、PHP、ASP等,就计数器而言,当包含计数器程序的页面打开或刷新时,该程序向服务器发出请求,服务器端根据扩展名ASP及页面中的特殊标签“<%...%>”调用ASP.DLL等程序解释并执行网页中的程序,然后把结果返回用户浏览器。
  由于计数器的数据极其简单,我在本例中采用了文本文件,基本工作流程是:
  ASP程序读取文本文件中的原始数据,然后加1,向网络发出新数据后更新存盘,flash取得数据后显示在场景中。
三、最基本的制作过程
1、创建数据文件
  用记事本创建一个新文档,键入“1”,然后保存为count.txt,这一步就完成了。
2、创建ASP文档
  我注意到,“启航”已经开设了几次ASP基础课程,由于本例不涉及数据库,所以这一步内容显得简单多了,如果朋友们对数据库链接以及ASP其它方面的知识有兴趣,可参阅我另外两篇学习文档:
(相关链接见页头)
  下面是本例的第2个文档count.asp的全部内容及注解:
<%
Dim count
Set Fs=Server.CreateObject("Scripting.FileSystemObject")   '创建一个新文本文件对象FS
file_path=Server.MapPath("counter.txt")           '设置文本数据打开路径,保存在File_path中
Set CounterFile=Fs.OpenTextFile(file_path)          '用该路径打开这个文件,实例名为CounterFile
OldCounterValue=CounterFile.ReadLine              '读取原始数据并赋予变量“老数据值”
NewCounterValue=OldCounterValue+1               '老数据值+1后赋予“新数据值”
Response.Write("count="&NewCounterValue)            '向WEB页面发送新数据值,注意变量表示格式
CounterFile.Close                        '关闭文本文件
Set CounterFile=Fs.OpenTextFile(file_path,2)         '再次打开文本文件,参数2为复盖原文件
CounterFile.WriteLine(NewCounterValue)             '用新数据值更新文本文件
CounterFile.Close                        '关闭文件实例,释放资源
%>
  ASP提供了相当丰富的文本文件操作命令,以上用红色显示的“关键词”就是ASP的脚本,在讲解时会作一些解释,你只需拷贝以上代码,保存为count.asp,这一步就完成了。
  脚本中使用了一组ASP的“文件操作组件”,其中可能对你陌生的脚本有以下几条:
·Server.CreateObject("Scripting.FileSystemObject")'创建一个文件操作实例
·MyFile.OpenTextFile("文本文件.txt") '打开一个文本文件
·MyTextFile.ReadLine '读取文本文件中的某一行
·MyTextFile.WriteLine(string) '向文件中写入字符串并加入换行符
  代码中的其它就是变量或者值,分清这二个类型,程序很易读懂了。  
  注意,本程序运行后会向网络发送一个变量及值:count=xxx,以供flash读取显示。
3、Flash读取数据
  请你再注意,flash读取外部变量必需遵守“MIME”格式标准,(它是一种 CGI 脚本使用的标准格式),“启航”以前也多次涉及这个问题,当我们要读取外部数据时,外部格式必需是“变量=值”,获取多个值,就得用“&”连接。
  例如,下面的语句能使flash得到3个数据:
  hslk1=1&hslk2=2&hslk3=3
  当然,你得在flash中定义三个动态文本对象,它们的变量名分别为hslk1、hslk2、hslk3。
  这就是为什么在ASP中向网络发送数据时用Response.Write("count="&NewCounterValue)语句的道理!

  那么,flash如何读取呢?这难不倒“启航”人,大家知道:
  只能是loadVariables(),这个函数完整语法如下:
  loadVariables("url" ,level/"target"[, variables])
  
  其中“url”是外部数据文件所处位置的绝对或相对路径。
  “level”指定接收这些变量的级别的整数。如果你是用flashMX,当将变量加载到级别时,在标准模式下,“动作”面板中的该动作变成:
  “loadVariablesNum”,在专家模式下,您必须指定 loadVariables或loadVariablesNum。
  笔者按:对于“loadVariables”和“loadVariablesNum”至今分不清楚的朋友请注意上述描述,实际上使用效果是一样的!
  “target”指向接收所加载变量的影片剪辑的目标路径。您只能指定“target”影片剪辑或level(级别)这两者之一;而不能同时指定这两者。
  “variables”是一个可选参数,指定发送变量所使用的 HTTP 方法。该参数必须是字符串 GET 或 POST。如果没有要发送的变量,则省略此参数。GET 方法将变量追加到 URL 的末尾,该方法用于发送少量变量。POST 方法在单独的 HTTP 标头中发送变量,该方法用于发送长的变量字符串。以上描述是我在flash帮助中查到的。
  根据上述描述,本例计数器应该使用“get”方式,而“post”被大量用在flash论坛、留言板等需要传递整个数据表或字段的场合。

  其实,Flash和Asp交换信息的原理就是页面之间的数据交换。
  Flash与Asp的通讯也是使用“Http协议”,其请求格式为“http://ip地址?变量1=值1&变量2=值2&变量3=值3”,举例说,当我们的flssh中有三个动态文本对象,它们的变量名分别是hslk1、hslk2、hslk3,它们的值分别是A、B、C,当你想与hslk.asp交换信息时可以写成:
loadVariables("hslk.asp","","get"),提交后,实际上flash发出了如下的web请求:
http://www.hslk.com/hslk.asp?hslk1=a&hslk2=b&hslk3=c
  
  具体书写时,可以写成:
loadVariables("hslk.asp","","get")
  也可以这样写:
loadVariables ("http://www.hslk.com/hslk.asp?hslk1=a&hslk2=b&hslk3=c" ,0, “GET”)
  这就是一个完整的请求,前者是一般写法,后者是“显式”的web请求。

  OK,根据上述原理,在我们的flash计数器第一帧写入以下代码:
第1帧:
loadVariablesNum("count.asp?count=NewCounterValue", 0, "GET");
这与以下写法是等同的:
loadVariables("count.asp","","get")

  如果这时你的count.txt文件中数字是“122”,那么flash获取的数据表达式是:count=123。
  性急而且聪明的朋友已经知道,接下来只要再在场景中放一个“动态文本框”,其变量名为count,就能显示“123”!
  不错,应该能够了,那么我们的计数器是不是算完成了?
  确实OK了,这可以算一个计数器,如果你能容忍这个毫无特色的计数器,那么下面一讲不听也罢。
 
平面设计·海报设计·画册设计·标志设计·VI设计·包装设计·彩页设计·印刷·亿美网络·虚拟主机·域名注册·网络推广
版权所有©亿美网络 北京亿美时代科技有限公司 京ICP备05057522号
公司电话: 010-83350995 010-83350998 010-81968630 传真:010-51816168转605
网站建设咨询:010-83350995 010-81968630 MSN:sunmaad@hotmail.com
  网站推广咨询:010-83350998 010-81968630 
总部地址:北京市宣武区广安门广义街4号 华星大厦4F
E-mail: em.net#163.com(使用时,请将#换成@) 24小时值班电话: 13910680749
客户服务QQ:397849553 业务联系QQ:290998291 联系人:马先生