0
<< предыдущая заметкаследующая заметка >>
11 мая 2010
Автосохранение

Поправил функцию автосохранения при написании новой заметки и комментария.

Исправилась ошибка «Неверная заметка #0", которая появлялась в новопишущемся комментарии при попытке его автосохрания. Все говорят: задолбало. Согласен, меня тоже задолбало.

Взамен этого включил настоящее автосохранение: новая заметка записывается, и если что-то прервало редактирование (локтем нажал ESC), то можно открыть заново редактор новой заметки, и он будет не пуст, а с текстом, что удалось сохранить ранее (автосохранение в редакторе сейчас срабатывает каждые 200 нажатий клавиши — этого достаточно, чтоб и не тормозило, и не потерять ничего, крупнее абзаца).

Также включил автосохранение и в комментариях. Если посетитель написал комментарий длиннее 100 нажатий клавиш, но не сохранил его, то этот текст для него тоже не пропадет, а при следующем вызове формы комментария появится.

PS: Ну и еще кое-какие глюки поправил в форме комментария.

PPS: Теперь даже можно сделать модуль, сообщающий при загрузке страницы: «кстати, в данный момент посетитель ___ сочиняет, но не отправил еще, следующий комментарий:


" Но зачем? :)
<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок
Оставить комментарий
Windows Safari Chrome
0
0
antarx
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
>PPS: Теперь даже можно сделать модуль, сообщающий при загрузке страницы: «кстати, в данный момент посетитель ___ сочиняет, но не отправил еще, следующий комментарий: ________" Но зачем? :)

Как зачем? В стилистике аськи, "на данный комментарий отвечает %username%",- достаточно информативное замечание для поддержания диалога в комментах.

Полагаю, если такое сообщение хранить несколько часов, заметно хуже для производительности не будет.
Linux Firefox
 Москва
0
0
LLeo
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Поддерживать постоянное соединение - катастрофическая нагрузка для сервера. Даже всякие "вконтакте" и "одноклассники", как мне рассказывали, используют "чат" чисто символический: обновил страницу - увидел новые сообщения.

Я пробовал когда-то делать в своем дневнике чатоподобные системы, причем самыми разными способами - и MySQL, и флаги, и даже, кажется, через memcache, и все равно - при одновременном сидении на сайте выше 300 человек и 5-секундном обновлении, сервер начинает падать.
Windows Safari Chrome
1
0
antarx
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Зачем постоянное соединение? Открыл пользователь окно добавления коммента - вызвал короткий get-запрос, который сервером трактуется для добавления надписи типа "%username% отвечает на этот комментарий". Раз в какое-нибудь время такие надписи, например, чистятся.

Кстати, насколько я понял, у Вас коммент сохраняется на сервере. Что мешает это сделать на стороне клиента, посредством js? Например, как оно описано здесь:
http://habrahabr.ru/blogs/javascript/29293/ (без оперы)
http://javascript.ru/blog/subzey/Lokalnoe-hranilishe-Opera (сугубо опера)
Правда, чёрт его знает, как оно будет работать с мобильными браузерами, и будет ли вообще.

Что касается вконтакте, у них, например, при добавлении комментов с сервера получаются все новые комменты в теме, и новый коммент, таким образом, встаёт в конец.

Что касается падения серверов - тут вопрос сугубо в ресурсоёмкости этих запросов. Я однажды для теста на слабом виртуальном хостинге (виртуальная машина с FreeBSD и 256Мб памяти) под в пике активности почти 100 посетителей делал 10-секундное обновление присутствия для чата - оно замечательно работало, особо не едя ресурсы. Единственные но: сессии хранились в памяти, а не на hdd, и скрипт обновления был предельно простым, оставляя обработку для js. По сути, ресурсы ели 2 mysql запроса - получение списка пользователей, и обновление онлайна,- маленькая фиксированной ширины база с этим успешно справлялась.
Linux Firefox
 Москва
0
0
LLeo
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Интересная мысль!

Боюсь только, я не потяну универсальное сочинение скрипта хранения сразу под все браузеры.

Но! У меня же есть Йожиная процедура хранения контента в куках на флэше. Причем, штатная (то есть изначально встроенная в движок и использующаяся на каждой странице для авторизации).

Соответственно, вызов ее в пределах всего движка вообще элементарен:

fc_read(name) - прочесть флэш-куку
fc_save(name,value) - записать флэш-куку
Windows Safari Chrome
0
0
antarx
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
В принципе, даже флеш лучше, чем текущее сохранение. Однако - всё же попробуйте начать делать локальное сохранение через js - браузер за браузером, благо всё, кроме ie, под никсами доступно - человечество в лице пользователей движка будет благодарно.
Nokia-E90 Safari
 Москва
0
0
LLeo Nokia
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Благодарное человечество и пользователи движка! Напишите единую кроссбраузерную процедуру сохранения локальной информации!

Это необходимо всем людям мира!

Я - нет, не справлюсь, мне и отладить не на чем.
Windows IE
1
0
greshnik
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Непонятно. Но зачем - относится к созданию такого модуля, или к сообщению - мол, пользователь сочиняет комментарий, а зачем - непонятною...
<< предыдущая заметка следующая заметка >>