最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

uniapp中使用計時器setInterval的場景與方法

 更新時間:2022年08月25日 15:59:04   作者:M?_chen  
計時器在日常開發(fā)中經(jīng)常會遇到,下面這篇文章主要給大家介紹了關(guān)于uniapp中使用計時器setInterval的場景與方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

首先要區(qū)分setInterval和setTimeout

使用場景:

1.一般情況下 setTimeout() 用于延遲執(zhí)行某方法或功能;

2.setInterval() 則一般用于刷新表單,對于一些表單的假實時指定時間刷新同步。

定義:

1.setInterval() : 用于按照指定的周期(以毫秒計)來循環(huán)調(diào)用函數(shù)或計算表達式,直到 clearInterval() 被調(diào)用或窗口關(guān)閉

2.setTimeout(): 用于在指定毫秒數(shù)后再調(diào)用函數(shù)或者計算表達式(以毫秒為單位)

區(qū)別總結(jié):

setTimeout() 方法只運行一次,也就是說當達到設(shè)定的時間后就開始運行指定的代碼,運行完后就結(jié)束了,次數(shù)是一次。

setInterval() 是循環(huán)執(zhí)行的,即每達到指定的時間間隔就執(zhí)行相應(yīng)的函數(shù)或者表達式,只要窗口不關(guān)閉或 clearInterval() 調(diào)用就會無限循環(huán)下去。

缺點總結(jié):

setInterval缺點:

1.使用setInterval時,某些間隔會被跳過;即使setInterval調(diào)用的方法報錯了,他仍然會繼續(xù)執(zhí)行。

2.無視網(wǎng)絡(luò)延遲,可能多個定時器會連續(xù)執(zhí)行

setTimeout缺點:

1.不能按時執(zhí)行

2.執(zhí)行動畫時它通過設(shè)定間隔時間來不斷改變圖像位置,達到動畫效果。但是容易出現(xiàn)卡頓、抖動的現(xiàn)象,原因是: settimeout 任務(wù)被放入異步隊列,只有當主線程任務(wù)執(zhí)行完后才會執(zhí)行隊列中的任務(wù)。

uniapp上使用:

//uniapp中的具體用法:我這里使用到了setInterval
data() {
		return {
			timer: null//定時器名稱
		};
	},
//一般在頁面需要的地方使用,這里我是放在了onshow()里
onShow() {
	// console.log('onshow');
	 this.timer = setInterval(function() {
		// 放入你自己的業(yè)務(wù)邏輯代碼
 	}, 3000);
},
//uniapp中onHide()能監(jiān)聽到頁面離開
onHide() {//離開頁面前清除計時器
	// console.log('onHide');
	clearInterval(this.timer);
	this.timer = null;
},

這里我要說明一下,在uniapp 中要實現(xiàn)vue離開頁面銷毀定時器功能,百度了一大圈都說使用vue的beforeDestroy生命周期,如下:

//beforeDestroy為實例銷毀之前調(diào)用
beforeDestroy() {
		if(this.timer) {
    	clearInterval(this.timer); //關(guān)閉
  	} 

結(jié)果,根本就沒有用,依然關(guān)不掉,最后看到一個方法說是:通過$once這個事件偵聽器器在定義完定時器之后的位置來清除定時器,如下:

const timer = setInterval(() =>{ // 某些定時器操作   }, 500);            

// 通過$once來監(jiān)聽定時器,在beforeDestroy鉤子可以被清除。 
uni.$once('beforeDestroy', () => {                     
        clearInterval(timer);                                     
})

顯然,對我這里并沒有用,最后還是采用了 onHide()這個頁面生命周期才能及時清除

補充:uni-app 倒計時計時器

<text class="red">剩余時間:<text>{{remaining}}</text></text>
export default {
		data() {
			return {
				remaining: '', //顯示剩余時間
				remainingd: ''  //數(shù)據(jù)返回時間秒
			}
		},
		onLoad() {
			uni.showLoading(); //數(shù)據(jù)加載中
			this.getmsglist();//第一次加載數(shù)據(jù)
		},
		methods: {
			//獲取列表信息
			getmsglist: function() {
					var _self = this;
				_self.goodsid = uni.getStorageSync('goodsid');
				uni.request({
					url: _self._apiurl + "/app/goods/getgoodsdetail",
					method: 'POST',
					header: {
						'content-type': 'application/x-www-form-urlencoded'
					},
					data: {
						openid: _self.openid,
						token: _self.token,
					},
					success: (res) => {
						console.log(res);
						var data = res.data;
						_self.remainingd = data.data.timestamp;
						_self.jishiqi();//執(zhí)行一次倒計時,因為進入頁面有等待
						
						setInterval(function() {
							_self.jishiqi();
						}, 1000)
 
						uni.hideLoading(); //關(guān)閉加載
 
 
					}
				})
			},
			//倒計時計時器
			jishiqi: function() {
				var dj = this.remainingd;
				if (dj <= 0) {
					this.remaining = "已過期";
				} else {
					var ddf = this.djs(dj); //格式化過后的時間
					this.remaining = ddf;
					//當前時間減去時間
					dj = dj - 1;
					this.remainingd = dj;
				}
 
			},
			//得到的秒換算成時分秒
			djs: function(ms) { 
				var h = parseInt(ms / (60 * 60));
				var m = parseInt((ms % (60 * 60)) / 60);
				var s = (ms % (60 * 60)) % 60;
				return h + ":" + m + ":" + s;
			},
		}
	}

總結(jié)

到此這篇關(guān)于uniapp中使用計時器setInterval的文章就介紹到這了,更多相關(guān)uniapp使用計時器setInterval內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何在JavaScript中謹慎使用代碼注釋

    如何在JavaScript中謹慎使用代碼注釋

    這篇文章主要介紹了如何在JavaScript中謹慎使用代碼注釋,必要的注釋可以闡明實現(xiàn)細節(jié)和設(shè)計意圖,以此節(jié)約自己和別人的時間。 然而很多時候注釋起的作用卻適得其反,,需要的朋友可以參考下
    2019-06-06
  • JS 中forEach,for in、for of用法實例總結(jié)

    JS 中forEach,for in、for of用法實例總結(jié)

    這篇文章主要介紹了JS 中forEach,for in、for of用法,結(jié)合實例形式總結(jié)分析了JS 中forEach,for in、for of的基本功能、使用方法與相關(guān)注意事項,需要的朋友可以參考下
    2023-05-05
  • JS實現(xiàn)貪吃蛇游戲

    JS實現(xiàn)貪吃蛇游戲

    這篇文章主要介為大家詳細紹了JS實現(xiàn)貪吃蛇小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • js實現(xiàn)緩沖運動效果的方法

    js實現(xiàn)緩沖運動效果的方法

    這篇文章主要介紹了js實現(xiàn)緩沖運動效果的方法,涉及javascript操作元素運動的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • 解決echarts的多個折現(xiàn)數(shù)據(jù)出現(xiàn)坐標和值對不上的問題

    解決echarts的多個折現(xiàn)數(shù)據(jù)出現(xiàn)坐標和值對不上的問題

    這篇文章主要介紹了解決echarts的多個折現(xiàn)數(shù)據(jù)出現(xiàn)坐標和值對不上的問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • javascript實現(xiàn)漂亮的拖動層,窗口拖拽特效

    javascript實現(xiàn)漂亮的拖動層,窗口拖拽特效

    一個可關(guān)閉、可隨意拖動位置的網(wǎng)頁彈出層代碼,美化的相當漂亮,簡潔實用,還可拖動改變大小,通過八個方向改變大小,學(xué)習(xí)這類特效編寫的網(wǎng)頁設(shè)計者可參閱一下
    2015-04-04
  • csdn 批量接受好友邀請

    csdn 批量接受好友邀請

    說實話,加好友的太多了,怎么辦,想個批量的辦法吧
    2009-02-02
  • 前端傳參的三種方式實戰(zhàn)案例

    前端傳參的三種方式實戰(zhàn)案例

    近期公司采用前后端分離的方式開發(fā)系統(tǒng),面臨前后端傳值方式的統(tǒng)一約定,該篇文章針對幾種傳值方式做了匯總,這篇文章主要給大家介紹了關(guān)于前端傳參的三種方式,需要的朋友可以參考下
    2024-08-08
  • 如何使用gpu.js改善JavaScript的性能

    如何使用gpu.js改善JavaScript的性能

    這篇文章主要介紹了如何使用gpu.js改善JavaScript的性能,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下
    2020-12-12
  • Bootstrap CDN和本地化環(huán)境搭建

    Bootstrap CDN和本地化環(huán)境搭建

    這篇文章主要介紹了Bootstrap CDN和本地化環(huán)境搭建的方法,非常不錯具有參考借鑒價值,感興趣的朋友跟著小編一起學(xué)習(xí)吧
    2016-10-10

最新評論

饶河县| 手游| 运城市| 山阳县| 连江县| 杭州市| 游戏| 乌苏市| 石家庄市| 安陆市| 梁山县| 青神县| 英德市| 迁安市| 宜良县| 九寨沟县| 得荣县| 岳池县| 邵东县| 慈溪市| 凤山市| 梓潼县| 吴忠市| 临湘市| 榆社县| 达州市| 溧阳市| 吉隆县| 安达市| 磴口县| 乐至县| 黄骅市| 安福县| 治多县| 张家港市| 江达县| 云和县| 清苑县| 虞城县| 金川县| 金塔县|