`
mlzboy
  • 浏览: 725459 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

小毛用AjaxPro实现定时刷新效果

阅读更多

<script type="text/javascript"> document.body.oncopy = function () { if (window.clipboardData) { setTimeout(function () { var text = clipboardData.getData("text"); if (text && text.length > 300) { text = text + "\r\n\n本文来自CSDN博客,转载请标明出处:" + location.href; clipboardData.setData("text", text); } }, 100); } } </script><script type="text/javascript"> function StorePage() { d = document; t = d.selection ? (d.selection.type != 'None' ? d.selection.createRange().text : '') : (d.getSelection ? d.getSelection() : ''); void (keyit = window.open('http://www.365key.com/storeit.aspx?t=' + escape(d.title) + '&u=' + escape(d.location.href) + '&c=' + escape(t), 'keyit', 'scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes')); keyit.focus(); }</script>

在看本文之前,建议查看本人的系列文章:
《AjaxPro与服务器端交互过程中如何传值》:http://blog.csdn.net/zhoufoxcn/archive/2008/01/05/2026908.aspx
《用AjaxPro实现二级联动》:http://blog.csdn.net/zhoufoxcn/archive/2008/01/07/2029204.aspx ,以便对AjaxPro有个初步印象。

 说明:在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>

<script type="text/javascript"> document.body.oncopy = function () { if (window.clipboardData) { setTimeout(function () { var text = clipboardData.getData("text"); if (text && text.length > 300) { text = text + "\r\n\n本文来自CSDN博客,转载请标明出处:" + location.href; clipboardData.setData("text", text); } }, 100); } } </script><script type="text/javascript"> function StorePage() { d = document; t = d.selection ? (d.selection.type != 'None' ? d.selection.createRange().text : '') : (d.getSelection ? d.getSelection() : ''); void (keyit = window.open('http://www.365key.com/storeit.aspx?t=' + escape(d.title) + '&u=' + escape(d.location.href) + '&c=' + escape(t), 'keyit', 'scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes')); keyit.focus(); }</script>

在看本文之前,建议查看本人的系列文章:
《AjaxPro与服务器端交互过程中如何传值》:http://blog.csdn.net/zhoufoxcn/archive/2008/01/05/2026908.aspx
《用AjaxPro实现二级联动》:http://blog.csdn.net/zhoufoxcn/archive/2008/01/07/2029204.aspx ,以便对AjaxPro有个初步印象。

 说明:在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.csdn.net/zhoufoxcn/archive/2008/03/09/2160407.aspx
///
 </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>";
        }
    }
}

程序运行的效果:

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



分享到:
评论

相关推荐

    用AjaxPro实现无刷新三级联动源码实例

    相比于传统的HTTP请求,AjaxPro通过XMLHttpRequest对象进行后台数据通信,实现了页面无需整体刷新即可更新部分区域的效果。 在"三级联动"的实现过程中,通常需要三个下拉列表控件,分别对应三级数据。一级数据(如...

    AjaxPro ajax无刷新 js调用后台代码 asp.net 实例

    5. **处理返回结果**:后台方法执行完毕后,可以通过回调函数处理返回的数据,更新DOM元素,实现无刷新效果。 AjaxPro的优点包括: - **性能提升**:由于避免了完整页面生命周期,AjaxPro通常比UpdatePanel更快。 ...

    AjaxPro实现页面异步更新

    AjaxPro是针对ASP.NET平台设计的一个强大的AJAX框架,它允许开发者在不刷新整个页面的情况下实现部分页面的异步更新,提升用户体验。AjaxPro的核心功能是通过JavaScript与服务器端进行异步通信,使得Web应用程序更加...

    Asp.net AjaxPro实现

    ### ASP.NET AjaxPro 实现深度解析 在探讨ASP.NET AjaxPro的实现机制之前,让我们先对Ajax有一个基础的理解。Ajax,即异步JavaScript和XML,是一种网页应用开发技术,允许网页在无需重新加载整个页面的情况下,能够...

    VS2005+AjaxPro实现的无刷新三级联动下拉菜单

    AjaxPro是Microsoft .NET平台上一个强大的AJAX框架,它允许开发者用C#或VB.NET编写服务器端代码,然后在客户端通过JavaScript进行调用,实现无刷新的页面交互。这个技术的核心在于将服务器端的方法暴露给JavaScript...

    ajaxPro 实现网页编辑页面

    这个标题"ajaxPro 实现网页编辑页面"指的是利用AjaxPro技术来创建一个可以在不刷新整个页面的情况下进行编辑的动态网页。 在ASP.NET 2.0中,AjaxPro提供了一种简单的方法来创建AJAX启用的Web服务和控件。这些服务和...

    ajaxpro 无刷新上传图片

    AjaxPro无刷新上传图片是一种利用Ajax技术实现在网页上无需刷新页面就能完成图片上传的功能。Ajax,即异步JavaScript和XML(Asynchronous JavaScript and XML),它允许网页在后台与服务器进行数据交换,更新部分...

    通用AjaxPro 无刷新分页

    AjaxPro是一种基于.NET平台的JavaScript库,它使得在Web应用程序中实现异步无刷新更新变得简单易行。本文将深入探讨如何利用AjaxPro实现一个无刷新分页的功能,同时结合存储过程,以提高数据处理效率。 **一、...

    ASP.NET源码——[聊天留言]小孔子简单无刷新留言薄(AjaxPro实现)_xkzbook.zip

    【ASP.NET源码——[聊天留言]小孔子简单无刷新留言薄(AjaxPro实现)_xkzbook.zip】是一个基于ASP.NET技术的源代码项目,主要用于实现一个无刷新的在线聊天和留言功能。这个项目利用了AjaxPro库,提供了一个高效、实时...

    ASP.NET-[聊天留言]小孔子简单无刷新留言薄(AjaxPro实现).zip

    在"小孔子简单无刷新留言簿"项目中,AjaxPro被用来实现在用户添加留言后,页面无需完全刷新就能显示新留言的功能,从而提升了用户体验。 项目文件"ASP.NET-[聊天留言]小孔子简单无刷新留言薄(AjaxPro实现)_xkzbook....

    AjaxPro展示一下无刷新分页的原理

    我的网址:www.0379zd.com欢迎光临。代码很简单,只是展示一下基本原理。 数据库更简单,表ttest id (int,自增) 单位编号(varchar(20)) 3 00101 4 00103 5 00105 6 00106

    ajaxpro无刷新,分页更新repeater_GridView数据源.rar

    标题中的“ajaxpro无刷新,分页更新repeater_GridView数据源”指的是使用AjaxPro技术在ASP.NET环境中实现页面无刷新的分页加载和更新Repeater控件与GridView控件的数据源。AjaxPro是.NET Framework下的一种AJAX库,...

    AjaxPro 无刷新界面案例

    AjaxPro是一种基于JavaScript的库,专门用于创建高度交互和无刷新的Web应用程序。它利用了Ajax(Asynchronous JavaScript and XML)技术的核心理念,即在不重新加载整个网页的情况下与服务器交换数据并更新部分网页...

    [聊天留言]小孔子简单无刷新留言薄(AjaxPro实现)_xkzbook(ASP.NET源码).rar

    [聊天留言]小孔子简单无刷新留言薄(AjaxPro实现)_xkzbook(ASP.NET源码).rar

    简单无刷新留言薄(AjaxPro实现)_网站在线聊天留言源码.rar

    【标题】"简单无刷新留言薄(AjaxPro实现)_网站在线聊天留言源码" 提供的是一个基于AjaxPro技术的在线聊天和留言功能的实现。Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够...

    网页定时刷新(Ajax)并在右下角弹出提示窗口

    网页定时刷新和右下角...总结来说,利用AjaxPro,我们可以实现网页的定时刷新和右下角提示功能,提供实时信息更新并以非侵入式的方式提醒用户。通过理解和实践这些技术,开发者可以构建更加动态和用户友好的Web应用。

    AjaxPro实例集合实现技术: 无刷新 验证指定字符 验证数字 验证邮箱 无刷新下拉菜单三级联动 CheckBox全选/反选/删除 等等..

    实现技术: 无刷新 验证指定字符 验证数字 验证邮箱 无刷新下拉菜单三级联动 CheckBox全选/反选/删除 等等.. 程序收集了本人在ASP.NET开发应用中会经常用到的轻量级的AJAX小例子,程序里面很多地方做了注释,通俗易懂...

    asp.net+ajaxPro实现的定单管理系统

    这是用ajaxPro实现的针对gridview的一些无刷新效果(查询,删除,修改)。因为我也是才毕业,水平还不行,对于新手我想应该有些帮助,希望大家能够喜欢。(含数据库备分) 系统asp.net2005+sql server2000

    小孔子简单无刷新留言薄(AjaxPro实现)

    本留言本采用了AjaxPro.2.0的ajax框架,实现了留言本的所有基本功能,包括:留言、回复、后台登录 删除等。 采用的是Access数据库,App_Data/book.mdb为数据库文件

Global site tag (gtag.js) - Google Analytics