GVKun编程网logo

JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法(js 定时刷新)

12

本文将带您了解关于JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法的新内容,同时我们还将为您解释js定时刷新的相关知识,另外,我们还将为您提供关于Ajax+set

本文将带您了解关于JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法的新内容,同时我们还将为您解释js 定时刷新的相关知识,另外,我们还将为您提供关于Ajax+setInterval定时异步刷新页面、AJAX短信验证码接口,setInterval,clearInterval倒计时显示、AngularJs中$ interval和setInterval之间的区别、AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法的实用信息。

本文目录一览:

JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法(js 定时刷新)

JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法(js 定时刷新)

本文实例讲述了JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法。分享给大家供大家参考,具体如下:

setTimeout 用于延时器,只执行一次.

setInterval:用于多次执行.

项目中引用到jquery.timers-1.2.js定时器,并且MSClass做信息定期滚动,每3分钟执行一次,执行三次左右,滚动的次数越来越快,原因在于timers和MSClass都用了setInterval,

都会再次添加一个setInterval,最后导致几个setInterval并发执行了,所以速度很快,需要在调用的时候clearInterval上次的setInterval ,或者引用MSClass作者的原方法。

rush:js;"> //定时器先执行 销毁实例 var Marquee1 = new Marquee(["div1","Content"]) function Marquee_everyTime() { Marquee1.Destroy(); //销毁实例应用 GetMarqueeInfo(); //然后ajax采集需要的信息数据。 } //ajax方法 function GetMarqueeInfo() { LG.ajax({ type: 'AjaxOther',method: 'GetMarqueeInfo',success: function (data,tipsContent) { $("#Content").html(""); $("#Content").html(tipsContent); //大容器| 小容器 |滚动的方向 |滚动的速度 | 大容器的宽度 | 大容器的高度 | 滚动休息时间 | 滚动休息时间 | 滚动结束时间 Marquee1.Direction = 2; Marquee1.Step = 0.4; Marquee1.Width = 640; Marquee1.Height = 30; Marquee1.Timer = 20; Marquee1.DelayTime = 4000; Marquee1.WaitTime = 3000; Marquee1.ScrollStep = 320; Marquee1.Start(); },error: function () { LG.tip('信息加载失败.'); } }); }

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》及《》

希望本文所述对大家JavaScript程序设计有所帮助。

Ajax+setInterval定时异步刷新页面

Ajax+setInterval定时异步刷新页面

这个是之前一个项目中用到的功能,现在记录一下他的使用步骤。

现在讲解一下具体的关键代码:

1.   window.onload:是指等待页面html和css都执行完毕以后才开始执行js文件,因为我这个文件是用来测试的,所以js文件放在头部。

2.    setInterval()是启用计时器的函数,函数中需要传递两个参数,一个是一个函数,是指这段时间内需要执行什么操作,第二个参数是间隔的时间。

3. clearTimeout()  是指当执行一段时间之后清除计时器,这个在该案例中没有使用到。

4. $.post :是jquery操作ajax发出post请求的函数,其中需要三个参数,第一个参数是向哪个页面发送请求,第二个参数是向后台传递的参数,可以是键值对,也可以使json数据格式的,第三个参数是返回函数,里面的data是后端发送过来的数据。

5. window.onload千万别写成window.onload() 

 1 <!DOCTYPE html>
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5     <title></title>
 6     <script src="../Js/jquery-1.7.1.js"></script>
 7     <link href="../Css/tableStyle.css" rel="stylesheet" />
 8     <script type="text/javascript">
 9         window.onload = function () {   
10             loadUserInfo();
11         }
12         setInterval(function () {
13             $("#tabList").load(location.href + " #tabList>*", "");
14             loadUserInfo();
15         }, 5000);
16        
17         function loadUserInfo() {
18             $.post("UserList.ashx", {}, function (data) {
19                 var serverData = $.parseJSON(data);
20                 var serverDataLength = serverData.length;
21                 for (var i = 0; i < serverDataLength; i++) {
22                     $("<tr><td>" + serverData[i].Id + "</td><td>" + serverData[i].UserName + "</td><td>" +
23                         serverData[i].UserPass + "</td><td>" + serverData[i].Email + "</td><td>").appendTo("#tabList");
24                 }
25             });
26         }
27     </script>
28 </head>
29 <body>
30     <a href="AddUserInfo.html">添加</a>
31     <table id="tabList">
32         <tr><th>编号</th><th>用户名</th><th>密码</th><th>邮箱</th><th>时间</th><th>详细</th><th>删除</th><th>编辑</th></tr>
33         
34 
35     </table>
36 </body>
37 </html>

后端代码:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using BLL;
 6 using Model;
 7 namespace WebApp.ajax
 8 {
 9     /// <summary>
10     /// UserList 的摘要说明
11     /// </summary>
12     public class UserList : IHttpHandler
13     {
14 
15         public void ProcessRequest(HttpContext context)
16         {
17             context.Response.ContentType = "text/plain";
18             BLL.UserInfoService UserInfoService = new BLL.UserInfoService();
19              
20             List<UserInfo> list = UserInfoService.GetList();  //将数据库中读取的数据保存在list中
21             //转换json的方法
22             System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();
23             string str = js.Serialize(list);//转换json数据
24             context.Response.Write(str); //写入到返回的数据中
25         }
26         public bool IsReusable
27         {
28             get
29             {
30                 return false;
31             }
32         }
33     }
34 }

  谢谢观看!!!

AJAX短信验证码接口,setInterval,clearInterval倒计时显示

AJAX短信验证码接口,setInterval,clearInterval倒计时显示

intervalId : '',

count :120,

sendSmsCode:function(){

var _thi = this;

if(_thi.smscodeSending){

return;

}else if(!$("#mobilePhone").validator().validator('check')){

return;

}

_thi.smscodeSending = true;

var data = new Object();

data.mobile = $('#mobilePhone').val();

//data.name = $('#name').val();

data.productCode = $('#productCode').val();

$.ajax({

url:window.gSysName+"/do/largess/smsvcode/send",

type:'GET',

data:data,

dataType:'json',

success :function(msg){

if(msg.resultCode=='0'){

$('#countSpan').text('(120秒)');

_thi.count = 119;

$('#randTxt').text('再次获取动态码');

_thi.intervalId = window.setInterval(function(){

if(_thi.count>0){

$('#countSpan').text('('+_thi.count+'秒)');

_thi.count--;

}else{

window.clearInterval(_thi.intervalId);

_thi.smscodeSending = false;

$('#countSpan').text('')

$('#randTxt').text('获取动态码');

}

},1000);

$('#randTip').fadeIn();

window.setTimeout(function(){

$('#randTip').fadeOut();

},6000);

}

},error: function(){

_thi.smscodeSending = false;

}

});

},

AngularJs中$ interval和setInterval之间的区别

AngularJs中$ interval和setInterval之间的区别

如何解决AngularJs中$ interval和setInterval之间的区别?

$ interval是Angular对本机Javascript setInterval的包装。

$interval使用时,角意识到由间隔功能所做的任何范围的变化,和双向绑定反映了变化。

setInterval使用时,角不会意识到由setInterval函数所做的任何范围的变化。

简而言之,该$interval函数触发Angular的摘要循环,而setInterval不会触发。

这个笨拙的人展示了差异。

码:

angular.module(''DemoApp'', [])
  .controller(''IntervalCtrl'', function($scope, $interval) {


    var updateExampleText = function() {
      console.log(''Changing exampleText'');
      $scope.exampleText = ''Time: '' + new Date().getSeconds();
    };

    $scope.useInterval = function() {
      //Show current seconds value 5 times after every 1000 ms
      $interval(updateExampleText, 1000, 5);

    };

    $scope.useSetInterval = function() {
      //$scope.exampleText changes are not reflected in the page
      //because Angular is not aware of the changes.
      setInterval(updateExampleText, 1000);
    };
  });

解决方法

我试图了解$ interval和setInterval之间的区别。我有这个测试:

Dashboard.prototype.updateTotalAppointments = function(){
//console.log();
this.appointmentsCount = this.appointmentsCount +1;
console.log(this.appointmentsCount);
};

Dashboard.prototype.start = function(){
    setInterval(function(){
        this.updateTotalAppointments();
    }.bind(this),3000);
}
div><h1>{{dashCtrl.appointmentsCount}}</h1></div>

使用 setInterval 不会更新HTML页面上的值,但实际上该值在浏览器控制台上会更改,但不会在HTML页面上更新。

但是如果我这样做:

Dashboard.prototype.start = function(){
$interval(function(){//using $interval seems to work fine
    this.updateTotalAppointments();
}.bind(this),3000);

}

这似乎工作得很好,所以我真的不知道为什么后者不起作用,但是我真的很想知道。

同样,从后台不断请求数据的最佳方法是每隔n分钟说一次并通过其控制器更新页面。

AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法

AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法

本文实例讲述了AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法。分享给大家供大家参考,具体如下:

1.分页加载数据的基础上,如何通过滚动加载,实现分页加载数据的效果,github上,针对AngularJS,有一款不错的插件,地址为:https://github.com/sroze/ngInfiniteScroll

2.下面来看官方给出的文档

(1)使用样例:

<ANY infinite-scroll=''{expression}''
   [infinite-scroll-distance=''{number}'']
   [infinite-scroll-disabled=''{boolean}'']
   [infinite-scroll-immediate-check=''{boolean}'']
   [infinite-scroll-listen-for-event=''{string}'']>
</ANY>

解释各个属性(指令的含义)

①infinite-scroll - {expression} 当滚动到浏览器底部时,所执行的函数或者表达式,通常是函数形式。

②infinite-scroll-distance (optional) - {number} 表达式或者数字,如果是一个数字,表示滚动条距离浏览器底部多少远时,执行①中里面的函数。如果将这个值设置为2,对于1000px高度的元素,当元素底部距离浏览器窗口底部距离在2000px像素以内,没滚动一次,都会执行一次①里面的函数。(这个值默认是0,即当元素滚动到元素底部达到浏览器窗口(滚动区域)底部时,执行滚动区域里面的函数。

③infinite-scroll-disabled (optional) - {boolean} 一个布尔值,用于标志滚动表达函数能否执行,如果值为true,表示滚动函数不能被执行。这个属性,通常用于暂停或者停止滚动。比如当我们在AJAX请求数据的过程中,移动了滚动条,这时就需要设置这个属性,禁止滚动函数的执行。

④infinite-scroll-immediate-check (optional) - {boolean} 一个布尔值,用于标志指令在初始化页面时,是否为初始执行一次(即使这种情况下,没有初始滚动),默认值为true,表示初始会执行一次这①里面的函数。

⑤infinite-scroll-listen-for-event (optional) - {string} 一个事件,当接受到这个事件时候,会重新执行滚动函数,重新定位滚动位置,比如到元素被修改时,会重新执行滚动函数。

(2)本地的DEMO

官网给出了本地运行,实现滚动加载的例子:

HTML代码:

<div ng-app=''myApp'' ng-controller=''DemoController''>
 <div infinite-scroll=''loadMore()'' infinite-scroll-distance=''2''>
  <img ng-repeat=''image in images'' ng-src=''http://placehold.it/225x250&text={{image}}''>
 </div>
</div>

JS代码:

var myApp = angular.module(''myApp'', [''infinite-scroll'']);
myApp.controller(''DemoController'', function($scope) {
 $scope.images = [1, 2, 3, 4, 5, 6, 7, 8];
 $scope.loadMore = function() {
  var last = $scope.images[$scope.images.length - 1];
  for(var i = 1; i <= 8; i++) {
   $scope.images.push(last + i);
  }
 };
});

更多关于AngularJS相关内容感兴趣的读者可查看本站专题:《AngularJS入门与进阶教程》及《AngularJS MVC架构总结》

希望本文所述对大家AngularJS程序设计有所帮助。

您可能感兴趣的文章:
  • 浅谈element中InfiniteScroll按需引入的一点注意事项
  • Element InfiniteScroll无限滚动的具体使用方法

我们今天的关于JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法js 定时刷新的分享已经告一段落,感谢您的关注,如果您想了解更多关于Ajax+setInterval定时异步刷新页面、AJAX短信验证码接口,setInterval,clearInterval倒计时显示、AngularJs中$ interval和setInterval之间的区别、AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法的相关信息,请在本站查询。

本文标签:

上一篇浅谈Ajax跨域Session和跨域访问(跨域 ajax)

下一篇Javascript Ajax异步读取RSS文档具体实现(ajax异步获取数据)