|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.10.2013, 22:50 | #1 |
Пользователь
Регистрация: 14.03.2009
Сообщений: 97
|
Автосохранение.
Добрые вечер дорогие мои. Нужна ваша помощь. Вот в чем задача. Нужно по кейапу сохранять. Но есть большое НО. Нужно сохранять после последнего нажатия кейапа. Сейчас это работает, в том случае если набирать текст со скоростью домохозяйки. Реализовано это примерно так. По кейапу вызывается функция
Код HTML:
timeOut(e,url,respons,10); Код HTML:
function timeOut(string,fname,old,p) { var i = p; setInterval(function() { counter() }, 500); function counter() { if(i!=0) { document.getElementById('autoSave').innerHTML = i--; } else { save (string,fname,old); } } } |
02.10.2013, 23:06 | #2 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Проверять надо текст от кейапа и текущий, если == то сохранять, иначе повторить цикл ...
|
02.10.2013, 23:39 | #3 |
Пользователь
Регистрация: 14.03.2009
Сообщений: 97
|
|
02.10.2013, 23:58 | #4 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Ну а вопрос тогда в чем? если работает плохо значит надо переписать чтобы работала хорошо
|
03.10.2013, 00:10 | #5 |
Пользователь
Регистрация: 14.03.2009
Сообщений: 97
|
Если Вы дочитаете пост до конца, то увидите, что я спрашиваю какие есть альтернативы такому метода. Ну или как минимум совет как ее улучшить. Принцип ее работы прост. Если я набираю. То переменная "P" постоянно обновляется и не опускается до нуля. Если я перестал набирать, некоторое время прошло, переменная стала нулем после чего выполнилась функция "save". И в принципе если печатать медленно, то все работает. Но если печатать с нормальной скоростью. Больше 150 знаков в минуту, то браузер не выдерживает такой нагрузки и падает или повисает пока не сожрет всю ОЗУ
|
03.10.2013, 00:48 | #6 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
я вообще не понимаю за каким тут эти р и i, посмотрите как работают теже поисковики и не изобретайте велосипед
|
03.10.2013, 09:38 | #7 |
Раздолбайских Дел
Старожил
Регистрация: 22.05.2009
Сообщений: 3,828
|
Если function timeOut вызывается не один раз, то юзай setTimeout вместо интервала.
При необходимости сноси таймер (clearTimeout).
Alar, верни репу!
|
03.10.2013, 14:14 | #8 | |
Пользователь
Регистрация: 14.03.2009
Сообщений: 97
|
Цитата:
если документ изменен то Код HTML:
clearTimeout(y); timeOut(editor.getValue(),url,respons); Код HTML:
function timeOut(string,fname,old) { y = setTimeout(function(){ save (string,fname,old);}, 2000); function save (string,fname,old) { $.ajax({ type: "POST", url: "editwork.php", cache: false, data:{'s':string,'f':fname,'o':old}, success: function(r){ if(r){ document.getElementById('autoSave').innerHTML = (count++).toString(); } } }); } } |
|
04.10.2013, 13:41 | #9 |
Раздолбайских Дел
Старожил
Регистрация: 22.05.2009
Сообщений: 3,828
|
переменную y нужно задать во внешнем контексте, а так все путем
Alar, верни репу!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
проблема автосохранение | andriypadun | Microsoft Office Word | 0 | 15.09.2012 18:31 |
Автосохранение | Ципихович Эндрю | Microsoft Office Word | 8 | 06.02.2012 18:09 |
Автосохранение паролей | Exterminated | PHP | 2 | 03.02.2012 20:37 |
Автосохранение StringGrid1 | Афанасий[vedma] | Общие вопросы Delphi | 1 | 17.01.2012 10:17 |
Автосохранение | A_L_E_X | Microsoft Office Excel | 12 | 13.08.2010 13:11 |