ExtJS 4 enableBufferをfalseに設定しても無駄です


この問題はExtJS 4にのみ存在する.2.0バージョンでは、ExtJS 4.2.1では修復されているので、手動で修正する必要はありません.
フロントエンドはExtJS 4.2
サービス側はextdirectspringであり、extdirectspringの構成は以下の通りである.
	/**
	 * Configuration class to configure different aspects of extdirectspring.
	 */
	@Bean
	public ch.ralscha.extdirectspring.controller.Configuration configuration(){
	    ch.ralscha.extdirectspring.controller.Configuration configuration=new ch.ralscha.extdirectspring.controller.Configuration();
	    configuration.setBatchedMethodsExecutionPolicy(BatchedMethodsExecutionPolicy.SEQUENTIAL);
	    configuration.setEnableBuffer(false);
	    return configuration;
	}

configuration.setEnableBuffer(false)は、Extが一度にサーバ側に送信するrequestをキャッシュしないことを示しているが、設定後に動作しない理由を発見した.ExtJS 4.2にバグがあります.4.2以降は修復すべきです.ここでext-all-debugを持ってください.jsは修正する必要がある場所を説明して、とても簡単で、私はすでに明記して、あなたは1行だけ注釈して、新しく1行追加すればいいです.

    queueTransaction: function(transaction) {
        var me = this,
            enableBuffer = me.enableBuffer;
        
        if (transaction.form) {
            me.sendFormRequest(transaction);
            return;
        }

        if (typeof transaction.timeout !== 'undefined') {
            me.sendRequest(transaction);
            return;
        }
    // 
        me.callBuffer.push(transaction);
        if (enableBuffer) {
       // 
            //me.callBuffer.push(transaction);

            if (!me.callTask) {
                me.callTask = new Ext.util.DelayedTask(me.combineAndSend, me);
            }

            me.callTask.delay(Ext.isNumber(enableBuffer) ? enableBuffer : 10);
        }
        else {
            me.combineAndSend();
        }
    },