在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/ Java問答
柒槿年 回答

就是個回調(diào)的過程

var async = function(arg, callback) {
    console.log(`參數(shù)為${arg}, 一秒后返回結(jié)果`)
    setTimeout(function() {
        callback(arg * 2)
    }, 1000)
}

async(1, function(value){  //第一層延時1秒回調(diào)value為2
    async(value, function(value){ // 第二次將vaule = 2 作為參數(shù)再執(zhí)行函數(shù),延時一秒回調(diào),此時value為4
        async(value, function(value){ // 第三次將vaule = 4 再次作為參數(shù)再執(zhí)行函數(shù),延時一秒回調(diào),此時value為8 所以輸出就為8
            console.log('完成: ', value)
        })
    })
})
大概就是這樣,理理思路就能看懂,不難的
爆扎 回答

沒人回答就自己回答...已經(jīng)解決!

涼心人 回答

你應(yīng)該把Vue.set(this.keywordList, this.keywordList.length, '')的邏輯寫在mutation里,然后在這里用dispatch分發(fā)事件

空白格 回答

網(wǎng)絡(luò) 中的 * 不表示通用匹配符

假灑脫 回答

這是一個坑
xml模板不能有空格,清除掉就可以了

微信官方文檔給的模板有空,但沒有做提示。

葬憶 回答

如果是完全私有的接口,其實還有這樣一些可選的策略
對于調(diào)用路徑都是加密的,比如你只提供一個公開的路徑,接受通過某種非對稱加密的字符串密文作為調(diào)用,原始路徑(非加密路徑 只有你的app和服務(wù)器端知道——其實這里所謂的調(diào)用路徑不一定是路徑表示,只是為了方便調(diào)試功能),這樣在這個統(tǒng)一接口中處理判斷是否進(jìn)行正確調(diào)用(后臺實際處理),對于不規(guī)范的(通過一些標(biāo)識、校驗等等),可以方便的過濾掉。這樣的一層其實相當(dāng)于在服務(wù)器端和app端(調(diào)用接口時)都再添加了一層包裝。

而那些公開api只所以用token來判斷是否有權(quán)限,是因為他們必須要公開調(diào)用路徑,而你并沒有這樣的要求,所以可以采用不同的策略了。

雨萌萌 回答
  1. 根據(jù)不同項目需要,我開發(fā)api的時候用過這種方法:

比如我的數(shù)據(jù)接口是: http://api.example.com/foo, 在前端不傳送任何參數(shù)的情況下,我會返回:

// 系統(tǒng)默認(rèn)返回20條數(shù)據(jù)
// since是從后臺查詢的一刻返回給前端的時間戳,這樣即使你的數(shù)據(jù)是動態(tài)添加的,無論上拉(next)還是下滑(previous)我都可以雙向查詢新舊2中數(shù)據(jù),這樣可以省去前端的一些設(shè)置。當(dāng)然我也會開通條件查詢(skip=1,limit=10;skip=2),實踐中發(fā)現(xiàn)這種方法非常靈活,延展性很不錯。

{
    "data" : [
        {  dataset 1   },
        {  dataset 2   },
        ...
        {  dataset 20 }
    ],
    "paging":  {
        "previous":  "http://api.example.com/foo?since=TIMESTAMP1" 
        "next":  "http://api.example.com/foo?since=TIMESTAMP2"
    }

}
  1. 數(shù)據(jù)的清潔最好是后端掌握。這樣不但能減少迭代的壓力,也能更好的提升客戶體驗。
  2. 這個搜一搜有很多,我就不班門弄斧了。
毀憶 回答

template官網(wǎng)

我記得 template 有 兩個版本
還一個是支持 native的,
你換個版本試試

吃藕丑 回答

更新2:

突然想起來,你這個更類似攔截器、過濾器的配置啊,可以參考一下。


更新:

interface ProtocolIndexConfigurer { void addIndex(ProtocolIndexRegistry registry); }

abstract class ProtocolIndexConfigurerRegister {
    
    // 這里假設(shè) registry 不是全局的,否則 configurer.addIndex(registry) 的調(diào)用形式很突兀
    // 全局的話應(yīng)該是 registry.addConfigurer(configurer) 這個你可以考慮一下
    public abstract void register();
    
}

使用:

@Component("conf1")
class ProtocolIndexConfigurer1 implements ProtocolIndexConfigurer {

    @Override
    public void addIndex(ProtocolIndexRegistry registry) { 
        // 注冊行為...
    }
    
}

@Component("conf2")
class ProtocolIndexConfigurer2 implements ProtocolIndexConfigurer { ... }

class MyProtocolIndexConfigurerRegister extends ProtocolIndexConfigurerRegister {

    @Resource("conf1")
    private ProtocolIndexConfigurer conf1; // 注入,或者用 @bean 導(dǎo)入都行
    
    @Resource("conf2")
    private ProtocolIndexConfigurer conf2;
    
    @Override
    public void register() {
        conf1.addIndex(new ProtocolIndexRegistry());
        conf2.addIndex(new ProtocolIndexRegistry());
        // 如果 ProtocolIndexRegistry 是全局的,那么就可以是
        // registry.addConfigurer(conf1)
                    .addConfigurer(conf2)
                    ...
        // 但是這樣改動可能比較大
    }
}

原答案:

interface ProtocolIndexConfigurer { void addIndex(ProtocolIndexRegistry registry); }

@ConditionOnMissingBean(name = "example")
@Component
class ProtocolIndexConfigurerAdapter implements ProtocolIndexConfigurer {
    @Override
    public void addIndex(ProtocolIndexRegistry registry) { /* 空實現(xiàn) */ }
}

class SomewhereInjectProtocolIndexRegistry {
    
    @Autowired
    private final ProtocolIndexConfigurerAdapter adapter;
    
    protected void func() {
        ProtocolIndexRegistry registry = // get registry
        adapter.addIndex(registry);
        // save index mapping
    }
}

使用:

@Bean(name = "example")
public SomeAdapter extends ProtocolIndexConfigurerAdapter {
    @Override
    public void addIndex(ProtocolIndexRegistry registry) {
        // do something here.
    }
}

印象里是這樣,你可以試一下,主要是 @ConditionOnxxx 注解的使用,給個空的默認(rèn)實現(xiàn)避免找不到實現(xiàn)類拋異常。

病癮 回答

思考良久,有了自己的解釋,但由于沒有看linux對socket的具體設(shè)計和實現(xiàn)代碼,不一定正確,詳情查看:https://segmentfault.com/a/11...

想要看具體實現(xiàn)的可以參考linux源碼:http://man7.org/linux/man-pag...

安于心 回答

舉個例子:
同步:我踹你一腳,你立馬告訴我你疼;
異步:我踹你一腳,你沒反應(yīng),過兩天你媽媽找到我媽媽,說你疼。

冷溫柔 回答
  1. 事件觸發(fā)流程是捕獲 -> 目標(biāo) -> 冒泡,不管你是否監(jiān)聽或者監(jiān)聽幾次,事件都會觸發(fā),你監(jiān)聽只是綁定了事件的回調(diào)函數(shù),并不影響事件的觸發(fā)。所以監(jiān)聽2次必然會執(zhí)行兩次
  2. 由于測試的代碼測試的是點擊目標(biāo),在目標(biāo)階段可以理解為捕獲和冒泡是一致的,所以先綁定的先執(zhí)行,后綁定的后執(zhí)行。如果你把代碼測試到點擊元素的父元素,會得到期望的結(jié)果
陌南塵 回答

看能不能能用抓包軟件抓包分析協(xié)議內(nèi)容

尐懶貓 回答
  1. websocket
  2. indexDB

前端負(fù)責(zé)展示用戶交互, 數(shù)據(jù)存儲這些不應(yīng)該有前端直接來做的

你這種需求直接做成客戶端就好了

亮瞎她 回答

我目前的解決方案是這樣的,給context對象增加一個帶參數(shù)的構(gòu)造方法,傳入一個porject對象的引用,project對象中的有個status字段標(biāo)記狀態(tài),根據(jù)switch來切換context的當(dāng)前state。而狀態(tài)模式只負(fù)責(zé)改變這個狀態(tài)字段,每個handle方法也接受project,返回也返回project,在handle方法內(nèi)部,改變project的這個字段,持久化的時候保存project對象。

其中有個坑是是保存project對象這個方法,我之前想把service寫在handle里,但是發(fā)現(xiàn)注入為null,想起來初始化的時候是new的context,脫離了spring生命周期,然后就把構(gòu)造方法都刪了,全部換成注解注入。但是這時候context里保存當(dāng)前狀態(tài)的state就不知道如何注入了。最后我又全改成了書上構(gòu)造器創(chuàng)建對象的方法。