推薦一款實用JavaScript插件js-trigger

js-trigger https://tanwei-cc.github.io/js-trigger/

js-trigger是一個JavaScript觸發器插件,可經過指定頻次、指定時間內觸發指定的處理函數,使用場景如:限制日誌頻繁上傳、限制ajax頻繁調用、錯誤提醒、網絡狀態檢測等javascript

Features

  • UMD Supported
  • Node Supported
  • Browser Supported

Browser Supported

Platform Device Version
Desktop Chrome all
Desktop Firefox (Gecko) 4.0(2)
Desktop IE 9
Desktop Opera 11.60
Desktop Safari 5
Mobile Android all
Mobile Firefox (Gecko) 4.0(2)
Mobile IE Mobile ?
Mobile Opera Mobile 11.50
Mobile Safari Mobile all

Installation

npm install --save tanwei-cc/js-trigger

Examples & Tests

import Trigger from 'js-trigger'; //ES6引入

var Trigger = require('js-trigger').default; //ES5引入

window.Trigger; //browser引入

var trigger = Trigger.create({
    name: '第一個觸發器',
    frequency: 5, //每隔5次觸發
    interval: 30,  //每隔30s觸發
    maxHandlerFrequency: 10,  //最多觸發10次
    handlerInterval: 30,  //距離上次觸發超過30s再觸發
    firstTrigger: true   //首次馬上觸發
});

/**
 * 觸發器監聽事件處理函數
 * @param {Object} state - 當前狀態
 * @param {number} handlerCounter - 觸發次數統計
 * @param {Date} startTime - 開始時間
 * @param {Date} endTime - 結束時間
 * @param {number} duration - 持續時長(ms)
 * @param {Object[]} data - 追加數據,每次check進行傳入
 */
trigger.on(function(state){
  //do something
});

setInterval(function(){
  trigger.check('每次check傳入的數據');
}, 1000);

//中止觸發器
trigger.stop();

//打開觸發器
trigger.open();

//重置觸發器
trigger.reset();

//移除觸發器監聽事件
trigger.off(handler);

//重置全部觸發器實例
Trigger.resetAll();

//打開全部觸發器實例
Trigger.openAll();

//中止全部觸發器實例
Trigger.stopAll();

//移除全部觸發器實例
Trigger.removeAll();

Documentation

Changelog

相關文章
相關標籤/搜索