Мне интересно, что является лучшим способом остановить дублирование представлений при использовании jquery и ajax?Остановить дублирование Ajax Submisions?
подхожу с 2-мя возможными способами, но не уверен, если это только 2.
На Ajax начать отключить все кнопки, пока запрос делается. 2 проблемы я вижу с этим, хотя я использую диалог модели jquery, поэтому я не знаю, как легко было бы отключить эту кнопку, поскольку я не уверен, что у них есть идентификаторы. Во-вторых, если запрос зависает, у пользователя действительно нет возможности повторить попытку, так как все кнопки отключены.
Я изучаю что-то, называемое AjaxQueue, в настоящее время у меня нет подсказки, если это то, что мне нужно, и как оно работает с сайта, где плагин, по-видимому, работает для обслуживания.
http://docs.jquery.com/AjaxQueue
Редактировать
Я думаю, что это спина от того, что я смотрел.
http://www.protofunc.com/scripts/jquery/ajaxManager/
Единственная проблема, которую я вижу с этим ajaxManager, что я думаю, что я должен изменить все мои $ .post, $ .get и $ .ajax из них к их типу.
Но что произойдет, если мне нужен специальный параметр из $ .ajax? Или тот факт, что мне нравится использовать .post и .get.
Edit 2
Я думаю, что это может занять во всех $ .ajax вариантов. Я все еще смотрю в нее. Однако теперь я не уверен в том, могу ли я использовать один и тот же конструктор для всех запросов, которые будут использовать одни и те же параметры.
First you have to construct/configure a new Ajaxmanager
//create an ajaxmanager named someAjaxProfileName
var someManagedAjax = $.manageAjax.create('someAjaxProfileName', {
queue: true,
cacheResponse: true
});
Или мне нужно сделать это выше каждый раз?
Не может быть проще использовать свойство timeout? Или это не работает так, как я думаю? :) –
@Vivin - Хорошая точка. Если не существует другой логики, которую вы хотите использовать в 'setTimeout()', чтобы решить, отменять ли вы, вы можете использовать свойство timeout. Переменная 'request' является флагом, как в вашем ответе, но с дополнительным преимуществом предоставления функции' abort() ', если это необходимо. – user113716