成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

[前端問(wèn)題]按鈕點(diǎn)的太快、日志打的太多、客戶網(wǎng)絡(luò)不明等 - 如何解決

Half / 414人閱讀

摘要:歸納為兩方面對(duì)服務(wù)器頻繁調(diào)用客戶體驗(yàn)優(yōu)化網(wǎng)絡(luò)問(wèn)題錯(cuò)誤提醒對(duì)服務(wù)器頻繁調(diào)用對(duì)于現(xiàn)有的網(wǎng)站或普遍存在這些問(wèn)題,這些問(wèn)題對(duì)服務(wù)器的影響很大,對(duì)于處理復(fù)雜請(qǐng)求請(qǐng)求量過(guò)多的直接導(dǎo)致服務(wù)器癱瘓案例對(duì)大數(shù)據(jù)進(jìn)行查詢(xún)報(bào)錯(cuò)就上傳日志大家都在點(diǎn)提交遇到這些問(wèn)題

歸納為兩方面: 對(duì)服務(wù)器頻繁調(diào)用、客戶體驗(yàn)優(yōu)化(網(wǎng)絡(luò)問(wèn)題/錯(cuò)誤提醒)

對(duì)服務(wù)器頻繁調(diào)用

對(duì)于現(xiàn)有的網(wǎng)站或webapp普遍存在這些問(wèn)題,這些問(wèn)題對(duì)服務(wù)器的影響很大,對(duì)于處理復(fù)雜請(qǐng)求、請(qǐng)求量過(guò)多的直接導(dǎo)致服務(wù)器癱瘓

案例:

對(duì)大數(shù)據(jù)進(jìn)行查詢(xún)

報(bào)錯(cuò)就上傳日志

大家都在點(diǎn)提交

...

遇到這些問(wèn)題,程序員比較頭疼,可能很多人意識(shí)到了問(wèn)題,但卻不好解決,原因是會(huì)造成業(yè)務(wù)代碼混亂、測(cè)試難度較大、容易出bug等

客戶體驗(yàn)優(yōu)化(網(wǎng)絡(luò)問(wèn)題/錯(cuò)誤提醒)

主要是圍繞網(wǎng)絡(luò)問(wèn)題、錯(cuò)誤提醒所要體現(xiàn)的客戶體驗(yàn)優(yōu)化
案例:

客戶網(wǎng)絡(luò)不明,無(wú)法排查網(wǎng)絡(luò)問(wèn)題

相同錯(cuò)誤不要頻繁提醒客戶

...

如何解決

推薦 js-trigger,js-trigger是一個(gè)JavaScript觸發(fā)器插件,可通過(guò)指定頻次、指定時(shí)間內(nèi)觸發(fā)指定的處理函數(shù)

支持UMD(AMD/CMD/CommonJS/ESModule)

支持Node

支持Browser

使用場(chǎng)景:限制日志頻繁上傳、限制ajax頻繁調(diào)用、錯(cuò)誤提醒、網(wǎng)絡(luò)狀態(tài)檢測(cè)等

js-trigger 案例

三種引入方式

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

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

window.Trigger; //browser引入

案例1:限制查詢(xún)按鈕頻次,條件是3s內(nèi)最多發(fā)一次請(qǐng)求

//創(chuàng)建一個(gè)觸發(fā)器
var trigger = Trigger.create({
    name: "限制查詢(xún)頻繁調(diào)用",
    //frequency: 5, //點(diǎn)擊5次觸發(fā)
    interval: 3,    //點(diǎn)擊超過(guò)3s觸發(fā),3s內(nèi)不觸發(fā)
    firstTrigger: true   //首次立刻觸發(fā)
});
var btnQuery = $("#btnQuery");
/**
 * 觸發(fā)器監(jiān)聽(tīng)事件處理函數(shù)
 * @param {Object} state - 當(dāng)前狀態(tài)
 * @param {number} handlerCounter - 觸發(fā)次數(shù)統(tǒng)計(jì)
 * @param {Date} startTime - 開(kāi)始時(shí)間
 * @param {Date} endTime - 結(jié)束時(shí)間
 * @param {number} duration - 持續(xù)時(shí)長(zhǎng)(ms)
 * @param {Object[]} data - 追加數(shù)據(jù),每次check進(jìn)行傳入
 */
trigger.on(function(state){
   $.get("查詢(xún)數(shù)據(jù)api接口", function(res){
      //do something
   });
});

//點(diǎn)擊查詢(xún)事件
btnQuery.click(function(ev){
  //檢查觸發(fā)器,條件成立會(huì)即可觸發(fā)處理函數(shù)
  trigger.check("每次check傳入的數(shù)據(jù)");
});

案例2:上傳客戶網(wǎng)絡(luò)數(shù)據(jù),條件是30s內(nèi)或執(zhí)行10次內(nèi)最多上傳一次數(shù)據(jù)且最多觸發(fā)10次

//創(chuàng)建一個(gè)觸發(fā)器
var trigger = Trigger.create({
    interval: 30,    //超過(guò)30s觸發(fā)
    frequency: 10,   //點(diǎn)擊10次觸發(fā)
    maxHandlerFrequency: 10,  //最多觸發(fā)10次
    firstTrigger: true   //首次立刻觸發(fā)
});

/**
 * 觸發(fā)器監(jiān)聽(tīng)事件處理函數(shù)
 * @param {Object} state - 當(dāng)前狀態(tài)
 * @param {number} handlerCounter - 觸發(fā)次數(shù)統(tǒng)計(jì)
 * @param {Date} startTime - 開(kāi)始時(shí)間
 * @param {Date} endTime - 結(jié)束時(shí)間
 * @param {number} duration - 持續(xù)時(shí)長(zhǎng)(ms)
 * @param {Object[]} data - 追加數(shù)據(jù),每次check進(jìn)行傳入
 */
trigger.on(function(state){
   //do something
});

//每秒檢測(cè)網(wǎng)絡(luò)
setTimeout(function(){
    //檢測(cè)網(wǎng)絡(luò)
    checkNetwork(function(data){
      //檢查觸發(fā)器,條件成立會(huì)即可觸發(fā)處理函數(shù)
      trigger.check();
    });   
}, 1000);
js-trigger相關(guān)地址

主頁(yè)面
文檔
測(cè)試頁(yè)面

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/88621.html

相關(guān)文章

  • 請(qǐng)給公有云多些成長(zhǎng)空間

    最近公有云不夠太平,在阿里云故障、AWS故障、谷歌云故障之后,騰訊云也掛了……,幾大公有云頻頻出現(xiàn)故障,一時(shí)讓很多上云的小伙伴們無(wú)從選擇,還能有靠譜點(diǎn)的嗎?其實(shí),關(guān)于公有云的故障,早就引起了很多不滿,一度成為人們上云的最大障礙。這些都是公有云里的大牌,市場(chǎng)地位顯赫,技術(shù)過(guò)硬,也是不差錢(qián)的金主,但仍逃不過(guò)故障的魔掌,其它的公有云就更不用提了,只是市場(chǎng)份額不大,出了故障也不像這幾個(gè)更受人們關(guān)注罷了。這...

    jayce 評(píng)論0 收藏0
  • 來(lái)聊聊react-native應(yīng)用的健康監(jiān)控

    監(jiān)控什么 今天我們來(lái)聊聊如何監(jiān)控你的應(yīng)用程序,這里的監(jiān)控說(shuō)的不是讓我們?nèi)ケO(jiān)控用戶,而是監(jiān)控應(yīng)用的健康狀態(tài),什么是健康狀態(tài)呢?對(duì)于后端的同學(xué)來(lái)說(shuō),在微服務(wù)的架構(gòu)下,每個(gè)子服務(wù)是否正常工作、返回的結(jié)果是否滿足預(yù)期,這些就算是健康狀態(tài),再舉個(gè)例子,你的臺(tái)式機(jī),對(duì)于操作系統(tǒng)來(lái)說(shuō),每個(gè)硬件是否能正常的工作、工作的穩(wěn)定性,這些都是需要關(guān)注的健康狀態(tài)。 既然我們關(guān)心健康狀態(tài),那么我們?cè)撊绾魏饬恳粋€(gè)設(shè)備的健康狀態(tài)...

    tunny 評(píng)論0 收藏0
  • Node.js + ELK 日志規(guī)范

    摘要:日志規(guī)范一般前端開(kāi)發(fā)同學(xué),對(duì)日志其實(shí)不太敏感,畢竟前端大多數(shù)情況下,不太關(guān)心日志。本文主要梳理了目前我們團(tuán)隊(duì)在開(kāi)發(fā)中日志方面存在的問(wèn)題,以及通過(guò)統(tǒng)一日志規(guī)范,希望達(dá)到什么樣的效果。日志格式字段日志格式統(tǒng)一采用,便于解析處理。nodejs 日志規(guī)范 一般前端開(kāi)發(fā)同學(xué),對(duì)日志其實(shí)不太敏感,畢竟前端大多數(shù)情況下,不太關(guān)心日志。即使有,也可能調(diào)用一些第三方的統(tǒng)計(jì),比如百度統(tǒng)計(jì)或者別的等。在 Node...

    tuomao 評(píng)論0 收藏0
  • DataX在有贊大數(shù)據(jù)平臺(tái)的實(shí)踐

    摘要:與大數(shù)據(jù)體系交互上報(bào)運(yùn)行統(tǒng)計(jì)數(shù)據(jù)自帶了運(yùn)行結(jié)果的統(tǒng)計(jì)數(shù)據(jù),我們希望把這些統(tǒng)計(jì)數(shù)據(jù)上報(bào)到元數(shù)據(jù)系統(tǒng),作為的過(guò)程元數(shù)據(jù)存儲(chǔ)下來(lái)。基于我們的開(kāi)發(fā)策略,不要把有贊元數(shù)據(jù)系統(tǒng)的嵌入源碼,而是在之外獲取,截取出打印的統(tǒng)計(jì)信息再上報(bào)。一、需求 有贊大數(shù)據(jù)技術(shù)應(yīng)用的早期,我們使用 Sqoop 作為數(shù)據(jù)同步工具,滿足了 MySQL 與 Hive 之間數(shù)據(jù)同步的日常開(kāi)發(fā)需求。 隨著公司業(yè)務(wù)發(fā)展,數(shù)據(jù)同步的場(chǎng)景越...

    JerryWangSAP 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<