通过ASP.NET Ajax技术模拟实现NBA比赛文字直播功能
文字直播是满足一些观看视频直播而条件不足的球迷所设定的比赛直播方式,例如在长途车上为了能够了解比赛的实时赛况但又限于流量和网速等问题,就出现了文字直播的方式。无论是拥有无线上网卡的笔记本电脑或者手机等终端设备都可以通过访问文字直播满足用户需求,本实例将通过预先定义好的直播数据来模拟文字直播效果,具体实现步骤如下:
(1)新建一个网站并创建一个Default.aspx页面,在页面将使用div标签进行直播窗口的布局,除了要实时更新的数据信息外,还包含一个控制复选框,用于启用或停止自动更新。页面源中要更新的布局标签如下:
<divclass="livecontent"> <divclass="livecontenttitle"><span>球队</span><span>时间</span> <span>解说</span><span>比分</span></div> <asp:ScriptManagerID="ScriptManager1"runat="server"></asp:ScriptManager> <asp:UpdatePanelID="UpdatePanel1"runat="server"> <ContentTemplate> <divclass="livecontentbody"id="livecontentbody"runat="server"></div> <asp:TimerID="Timer1"runat="server" Interval=""OnTick="Timer1_Tick"></asp:Timer> </ContentTemplate> </asp:UpdatePanel> </div>
(2)为了模拟直播员录入的比赛信息,在实例中将通过程序填充一些比赛数据,并且需要定义数据容器来承载这些数据,代码如下:
publicstaticStringBuilder str = newStringBuilder();//比赛内容数据绑定容器
publicstaticList<string[]> result = newList<string[]>();//直播员输入的比赛数据容器
publicstaticint Index = -;//比赛信息数据索引
protectedvoid Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//首次加载时填充数据容器
result.Add(newstring[] { "cl", "11:48", "特里斯坦汤普森两分球进", "0-0" });
result.Add(newstring[] { "ov", "00:00", "第一节结束", "30-30" });
//页面加载设置友好提示信息
this.livecontentbody.InnerHtml =
"<div class=\"start\">各位观众大家好,比赛已经正式开始!</div>";
}
}
注意:
由于篇幅的限制所以代码中只给出了开始数据和结束数据,实际数据总数为20条。
(3)再来实现启用或暂停的复选框功能,代码如下:
protectedvoid CheckBox1_CheckedChanged(object sender, EventArgs e)
{
this.Timer1.Enabled = ((CheckBox)sender).Checked;//用于启用或暂停比赛直播
}
(4)最后定义Timer定时器定时触发方法的功能,该处理方法将每隔10秒钟进行一次调用,然后在方法中随机生成1到3条数据并填充到容器,最后绑定到页面上,代码如下:
protectedvoid Timer1_Tick(object sender, EventArgs e)
{
Random ran = newRandom();//创建随机类
int r = ran.Next(, );//生成1-3随机数
//根据生成的随机数进行循环,并判断总的数据量没有超出循环范围
for (int i = ; i < r && Index < ; i++)
{
Index++;//从0开始
string[] arr = result[Index];//获取指定索引的数据
//向绑定容器中第0个位置插入比赛信息,此方式确保最新的数据永远排在最上面
str.Insert(, "<div class=\"livecontentbodylist\">" +
"<span><img src=\"images/" + arr[] + ".png\"/></span>" +
"<span>" + arr[] + "</span>" +
"<span>" + arr[] + "</span>" +
"<span>" + arr[] + "</span>" +
"</div>");
}
this.livecontentbody.InnerHtml = str.ToString();//绑定到页面div容器中
if (Index > )//判断索引值是否超出数据总数
{
this.Timer1.Enabled = false;//如果超出则本节结束,停止更新
}
}
执行程序,页面加载时将提示友好信息,如图13.6所示,比赛开始后效果如图13.7所示,最后第一节比赛结束后效果如图13.8所示。

图13.6 直播前友好提示信息

图13.7 直播时的赛况信息

图13.8 结束时停止更新
本文摘自明日科技出版的《零基础学asp.net》,转载请注明出处!!!
通过ASP.NET Ajax技术模拟实现NBA比赛文字直播功能的更多相关文章
- 使用AJAX技术发送异步请求,HTTP服务端推送
使用AJAX技术发送异步请求 什么是AJAX AJAX指一步Javascript和XML(Asynchronous JavaScript And XML),它是一些列技术的组合,简单来说AJAX基于X ...
- 利用ASP.NET AJAX的Timer讓GridView每隔一段時間做到自動換頁的功能
最近在討論區看到這個問題,小弟利用asp.net ajax的timer來實作這個功能 利用timer每隔一段時間,讓gridview自動跳頁並且更新gridview的內容 asp.net(c#) Gr ...
- ASP.NET AJAX入门系列(1):概述
经常关注我的Blog的朋友可能注意到了,在我Blog的左边系列文章中,已经移除了对Atlas学习手记系列文章的推荐,因为随着ASP.NET AJAX 1.0 Beta版的发布,它们已经不再适用,为了不 ...
- C#/ASP.NET/AJAX
C#/ASP.NET/AJAX ASP.NET 4.5新特性一:强类型数据绑定(Strongly-Type Data-Bindings) 摘要: 随着ASP.NET 4.5的发布提供了很多的新特性 ...
- 【转】【Asp.Net】了解使用 ASP.NET AJAX 进行局部页面更新
简介Microsoft的 ASP.NET 技术提供了一个面向对象.事件驱动的编程模型,并将其与已编译代码的优势结合起来.但其服务器端的处理模型仍存在技术本身所固有的几点不足: 进行页面更新需要往返服务 ...
- Java之Ajax技术
ajax(asynchronouse javascript and xml) 异步的javascript 和 xml(现在常把xml换成json): ajax是2005年提出的,在2006,2007年 ...
- Ajax 技术一
一.Ajax概述 1.历史起源 1998年,微软公司Outlook Web Access研发小组在当时的IE浏览器中集成了一种技术,可以在客户端无刷新的前提下向服务器端发送Http请求,这门技术称之为 ...
- 你真正的了解Ajax?Ajax技术简述
Ajax技术是目前在浏览器中通过JavaScript脚本可以使用的所有技术的集合.Ajax并没有创造出某种具体的新技术,它所使用的大多数技术都是在很多年以前就已经存在了,然而Ajax以一种崭新的方式来 ...
- asp.net ajax检查用户名是否存在代码
原文 asp.net ajax检查用户名是否存在代码 用户注册时,我们经常需要检查用户名是否存在,本文就是实现无刷新验证用户名 打开开发环境VS 2005,新建项目(或打开现有项目),新建一个Web ...
随机推荐
- 《Java JDK 8 学习笔记》序
摘录自<Java JDK 8 学习笔记> 翻开一本书,无非是想从书中得到知识,只是为何你要得到书中的知识,才是我想知道的答案,而这个答案决定了你在取得知识的过程中是否快乐! 多数人在取得知 ...
- 【郑轻邀请赛 B】base64解密
[题目链接]:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=2128 [题意] [题解] 把密文; 在表中找到每个字符对应的数字; 然后转换成相应的 ...
- Spring学习总结(4)——Spring AOP教程
一.概念 AOP(Aspect Oriented Programming):面向切面编程. 面向切面编程(也叫面向方面编程),是目前软件开发中的一个热点,也是Spring框架中的一个重要内容.利用AO ...
- Maven学习总结(9)——使用Nexus搭建Maven私服
1 . 私服简介 私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件.有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库:否则,私服请求外部 ...
- [转]如何有效地报告Bug
英文原文:Simon Tatham,编译:Dasn 引言 为公众写过软件的人,大概都收到过很拙劣的bug报告,例如: 在报告中说“不好用”: 所报告内容毫无意义: 在报告中用户没有提供足够的信息: 在 ...
- nyoj_171_聪明的kk_201402281518
聪明的kk时间限制:1000 ms | 内存限制:65535 KB 难度:3描述 聪明的“KK”非洲某国展馆的设计灵感源于富有传奇色彩的沙漠中陡然起伏的沙丘,体现出本国不断变换和绚丽多彩的自然风光 ...
- [bzoj4530][Bjoi2014]大融合_LCT
大融合 bzoj-4530 Bjoi-2014 题目大意:n个点,m个操作,支持:两点连边:查询两点负载:负载.边(x,y)的负载就是将(x,y)这条边断掉后能和x联通的点的数量乘以能和y联通的点的数 ...
- 51Nod——T 1109 01组成的N的倍数
https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1109 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 ...
- mongodb之用户/认证/角色/权限管理
前言 用户权限管理很重要,只给需要的权限,防止应用系统漏洞导致脱库 认证和授权 Authentication 认证识别,解决我是谁 Authorization 操作授权,我能做什么 认证机制 MONG ...
- 多个机器获取微信access-token导致的有效性问题
多个机器获取微信access-token导致的有效性问题 单个机器获取的access-token,只有最后一个是有效的: 多个机器各自获取自己的access-token,都是各自有效的: 在服务器和本 ...