AjaxPro定时刷新页面(zt )

本文介绍了一种使用AjaxPro实现在Web应用中定时局部刷新页面的方法,避免了使用传统html技术导致整个页面频繁刷新的问题,有效提高了用户体验。
说明:在Web开发中,有时候需要经常更新某一部分内容,如果不采用Ajax技术,就需要使用传统的html技术,在<head> </head>区域加以下代码:<meta http-equiv="Refresh" content="10"> (假设每10秒更新一次),这样做的缺点是每次更新的时候整个页面都刷新了带来很多不必要的流量,也影响效率。微软的Ajax.Net类库也提供了相应的 控件,使用微软提供的控件开发效率高,但是经常会出现“***不是已知元素 原因可能是网站中存在编译错误 ”的提示,另外有些控件虽然在执行的时候不占用显示空间,但是在设计视图的时候却占用显示空间,让人心情不爽,所以我还是倾向于AjaxPro这个第三方 控件。
不过AjaxPro本身好像没有提供定时执行某个方法的类,但是我们可以利用Js本身的方法,它就是setInterval("方法名() ",间隔多少微秒),没研究微软的 Ajax.Net类库,我估计它的最终效果也是采用这个方法或者类似方法来实现的。(如果只想执行一次,可以使用setTimeout("方法名()", 间隔多少微秒)这个方法。

另外说明一下,在本人发表前面两篇关于AjaxPro的文章之后,有不少人询问如何配置AjaxPro,在这里简 单说明一下:首先需要一个AjaxPro类库,它目前已经到2.0版本(Vs2003只支持AjaxPro1.0,VS2005支持AjaxPro2.0 版本,对应的类库文件分别是AjaxPro.dll和AjaxPro.2.dll),将下载到的类库文件放到bin文件夹下,再配置一下 web.config文件即可使用了,在system.web节点下添加如下节点:

<system.web>
    
<httpHandlers>
      
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
    
</httpHandlers>
</system.web>


演示程序的cs代码很简单,程序的主要思路就是通过js定时调用服务器端方法,并将结果显示出来,有兴趣的朋友可以将它完善,放到自己的web上,用于改善用户体验。

前台页面: 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Index.aspx.cs" Inherits="Index" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    
<title>交通信号指示</title>
    
<script language="javascript" type="text/javascript">
    window.onerror 
= function()
    {
        
return true;//不显示脚本错误信息
    }
    
    
</script>
</head>
<body onload="init()">
    
<form id="form1" runat="server">
    
<table border="0" cellpadding="0" cellspacing="0" width="100%">
        
<tr>
            
<td>路灯状态</td>
        
</tr>
        
<tr>
            
<td>
            
<div id="timeLabel"><font color="red">红灯</font>
            
</div>
            
<div id="test">
            
</div>
            
</td>
        
</tr>
        
<tr>
            
<td>请遵守交通法则,做到“红灯停,绿灯行”。</td>
        
</tr>
    
</table>
    
    
<script language="javascript" type="text/javascript" defer="defer">
        
function init()
        {
            setInterval(
"showTime()",10000);
        }
        
function showTime()
        {
            
var now=new Date();
            
var time=document.getElementById("timeLabel");
            
//time.innerText=Index.GetStatus().value;
            time.innerHTML=Index.GetStatus().value;
            document.getElementById(
"test").innerHTML=now.toLocaleString();
        }
    
</script>
    
</form>
</body>
</html>
后台代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
/// <summary>
/// 说明:在Web开发中,有时候需要经常更新某一部分内容,如果不采用Ajax技术,就需要使用传统的html技术,在<head></head>区域加
/// 以下代码:<meta http-equiv="Refresh" content="10"> (假设每10秒更新一次),这样做的缺点是每次更新的时候整个页面都刷新了
/// 带来很多不必要的流量,也影响效率。
/// 微软的Ajax.Net类库也提供了相应的控件,使用微软提供的控件开发效率高,但是经常会出现“***不是已知元素 原因可能是网站中存在编译错误 ”的提示
/// 另外有些控件虽然在执行的时候不占用显示空间,但是在设计视图的时候却占用显示空间,让人心情不爽,所以我还是倾向于AjaxPro这个第三方控件。
/// 不过AjaxPro本身好像没有提供定时执行某个方法的类,但是我们可以利用Js本身的方法,它就是setInterval("方法名()",间隔),没研究微软的
/// Ajax.Net类库,我估计它的最终效果也是采用这个方法或者类似方法来实现的。
/// 作者:周公
/// 时间:2008-3-9
/// 首发地址:http://blog.youkuaiyun.com/zhoufoxcn
/// </summary>
public partial class Index : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    {
        AjaxPro.Utility.RegisterTypeForAjax(
typeof(Index));//注册AjaxPro
    }
    
//[AjaxPro.AjaxMethod]表示下面的方法用Ajax调用的服务器端方法
    [AjaxPro.AjaxMethod]
    
public string GetStatus()
    {
        
int second = DateTime.Now.Second;
        
if (second >= 40)
        {
            
return "<font color='red'>红灯</font>";
        }
        
else if (second <= 39 && second >= 20)
        {
            
return "<font color='green'>绿灯</font>";
        }
        
else
        {
            
return "<font color='yellow'>黄灯</font>";
        }
    }
}

程序运行的效果:

------------------------------------------

————————————————————————————————————
----------------------------------------
说 明:程序的运行效果如上图所示,整个页面除了表示路灯状态的文字和文字相应的颜色变化以外(日期时间部分是用于调试比较的语句,与逻辑无关),其它部分并 不刷新和变化,达到了定时刷新局部的要求。这种功能在某些情况下非常有用,本人曾在开发的一个OA系统中用到了这个功能,在用户登录进系统之后,即使用户 在某个页面长期停留也没有关系,可以在不影响用户的前提下定时局部刷新,一旦有需要用户处理的事情就会即使通知用户,极大地改善了用户体验。

需 要说明的是,在运行程序时会有“缺少对象”的js脚本错误提示,不过不影响程序的效果,听说是AjaxPro的bug,我会进一步寻找原因。如果要消除这 个错误提示,可以在页面的<head></head>区域添加如下代码(本示例中已经添加):

<script language="javascript" type="text/javascript">
    window.onerror 
= function()
    {
        
return true;//不显示脚本错误信息
    }
</script>

转载于:https://www.cnblogs.com/nosnowwolf/articles/1098348.html

系统支持前后端分离架构,涵盖微信、支付宝、百度、头条等主流平台的小程序、APP及公众号,内置多种常见支付方式,具备完善的订单处理机制,界面设计美观,是一款功能完备的商城开源平台。毕业设计是高校教育中的一项关键实践性任务,用于评估学生在专业领域内的知识掌握程度、实践能力和创新思维。该任务通常要求学生结合所学理论,针对某一具体问题提出可行的解决方案或开展一项具有实际价值的研究项目。 在选题阶段,学生需根据个人兴趣、专业方向及现实需求进行选择,并在导师指导下明确研究目标与核心问题,制定研究计划与实施方案。整个过程通常包含资料查阅、需求分析、系统设计、开发实现及测试优化等多个环节,确保研究的完整性与科学性。 在研究过程中,学生需具备较强的自主分析与问题解决能力,可能通过实验、调研、案例研究等方式收集数据并验证假设,从而提升专业技能与实际操作能力。撰写毕业设计报告是核心环节之一,需详细记录研究过程、方法、结果及结论,以全面展示研究成果。同时,这一过程也有助于提升学生的学术表达能力与逻辑思维水平。 最终,毕业设计成果将由导师及相关专家进行评审,评价标准涵盖创新性、应用价值、研究方法的合理性及论文撰写质量等方面。毕业设计的成绩将作为学生学业评估的重要依据,直接影响其毕业资格与学位授予。 总体而言,毕业设计是高校教学体系中的重要组成部分,不仅有助于学生深化专业知识,还能锻炼其独立研究与实践能力,为未来职业发展奠定良好基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值