本文将带您了解关于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 定时刷新)
- Ajax+setInterval定时异步刷新页面
- AJAX短信验证码接口,setInterval,clearInterval倒计时显示
- AngularJs中$ interval和setInterval之间的区别
- AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
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作者的原方法。
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家JavaScript程序设计有所帮助。
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倒计时显示
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之间的区别?
$ 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实现下拉滚动加载的方法。分享给大家供大家参考,具体如下:
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实现下拉滚动加载的方法的相关信息,请在本站查询。
本文标签: