2015-11-12 2 views
1

Я пытаюсь избежать параметра Timeout во время выполнения запроса Ajax.ExtJs 4.3 Запрос Ajax избегает таймаута

О применении у меня есть «кнопка Отправить», в которой я отправить информацию на сервер, как:

if (Ext.getCmp('bottomPanel').getForm().isValid()) { 
    mask.show(); 
    Ext.Ajax.request({ 
     url: 'sendInfo.do', 
     timeout: 30000, 
     jsonData: { 
      'businesDateString': businessDate, 
      'incremental': incremental 
     }, 
     success: doDwrCallbackForced, //edit: used for Ext.MessageBox.show(message) 
     failure: failureCallBack //edit: used for Ext.MessageBox.show(error message) 
}); 

Но этот процесс может занять от 2 минут до 15/20 минут. И я хочу вызвать метод сервера только один раз.

Есть ли способ избежать таймаута (кроме тайм-аута: 1800000, - 30 минут, в сообщении Ajax.request)?

Может ли объект TaskRunner быть полезным для этой задачи?

Заранее спасибо

+0

установить таймаут до 0, что означает неограниченный. Кстати, вы уверены в этой реализации. Если запрос ajax займет 15 минут, вам следует обратиться за асинхронным запросом или веб-сокетами. –

ответ

1

Вы можете переопределить настройки таймаута глобально ...

без объяснения причины не с помощью тайм-аута конфигурации на функцию Ajax.Request, это трудно, чтобы дать вам правильное ответ.

Ext.Ajax.timeout = 300000; // 300 seconds 
Ext.override(Ext.form.Basic, {  timeout: Ext.Ajax.timeout/1000 }); 
Ext.override(Ext.data.proxy.Server, {  timeout: Ext.Ajax.timeout }); 
Ext.override(Ext.data.Connection, {  timeout: Ext.Ajax.timeout }); 
Смежные вопросы