логин: 
<< предыдущая заметкаследующая заметка >>
17 июля 2010
Начинаю активно использовать флэшкуки

Флэшкуки давным давно штатно входят в движок — это JS-функции fc_save(name,value) и fc_read(name) Раньше они использовались только для дублирования авторизации, которая хранится в обычных куках, но потенциал у флэшкук огромен.

Сейчас я переделал процедуру оставления комментария — раньше она пыталась время от времени заливать пользовательский недописанный текст на сервер, чтобы если у него что-то случится, то когда он следующий раз откроет форму комментария, движок ему вежливо подставил остатки недописанного из своей базы.

Как справедливо мне тут заметили, это сложно и дорого, и вообще гонять на сервер впустую каждые 100 символов не надо.

Сейчас все делается на стороне клиента через флэшкуки. Открываем форму комментария, начинаем писать текст, захлопываем форму. Открываем снова — а текст недописанный подставился. Сотрется этот "буфер" только после удачной отправки комментария.

Ну а если у пользователя в браузере не включен флэш? То и хуй бы с ним, я полагаю. Будет аккуратнее писать комментарии, заботясь о недописанном самостоятельно. А то повадились — одни флэш отключают, другие и вовсе javascript, а мы о каждом заботься?

Чтобы проверить, действуют ли флэшкуки в вашем браузере, кликните сюда.

На будущее у меня по движку идеи еще интереснее. Ведь во флэшкуках можно организовать транспорт информации! Эту информацию могут передавать друг другу различные распахивающиеся окошки страницы (например, из окна редактора открыли дополнительное окно выбора фотки в фотоальбоме, потом закрыли его, а имя выбранной фотки окно редактора получит из флэшкуки 'fotka'). Но интереснее, когда эту информацию будут передавать друг другу разные страницы сайта. Пример: ты пишешь в блог и хочешь вставить цитату с другого сайта со ссылкой. Все это пока что делают руками, но это возня. Зачем? Ты открываешь тот сайт в другом окне, выделяешь мышкой нужную цитату и кликаешь тут же на передней панели браузера специальную кнопку-ссылку «javascript:...». Она коннектится к твоему сайту через iframe 1x1, передавая выделенный мышкой текст в ссылке типа kopipast.php?text=Вот_это_я_выделил&link=http://gazeta.ru (собственно, сейчас у меня так работает кнопка «рекомендованные ссылки») А этот iframe (с твоего родного сайта) при своей загрузке забьет данные в твои флэшкуки. Осталось только вернуться в окно, где ты редактируешь свою заметку, и... о чудо, а там уже готовая оформленная ссылка вставилась, подтянулась сама из флэшкук (это не аякс, хоть ежесекундно их опрашивай).

Вот такая мысль. Думаю, реализовать ее при нынешней системе — один вечер. Зато какое удобство будет при написании заметок с большим количеством ссылок! А то я заебался, если честно, верстать посты, где нужно много ссылок — как про ту выставку запрещенную.

PS: Проверка: кликните сюда чтобы проверить html5

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок
Оставить комментарий
Windows Opera
2
0
[email protected] (xtmb.info)
Думаю, на будущее лучше переложить такое щасте на html5 (http://en.wikipedia.org/wiki/DOM_storage).
Куки - это все-таки куки.
>*А еще я не хочу ставить флеш*

UPD: Хм. А что с ссылками?
Nokia-E90 Safari
 Москва
0
0
LLeo Nokia (#3043)
Куки ни при чем вообще, речь о флэш-хранилище.

По поводу HTML5 я нихуя не понимаю в нем, и пока что не встречал короткой и ясной кроссбраузерной процудуры, которая бы позволила сохранить на машине пользователя переменную name="VALUE" Если встретите такую процедуру когда-нибудь - пришлите. Буду благодарен. Вставлю в функции fc_save и fc_read Но пока этого нет, работаем с флэш-хранилищем.

А что со ссылками? О чем вы?
Windows Safari Chrome
1
0
Goodkat (#186871)
Похоже, вы смешиваете понятия куки и хранилище :)

Но это не страшно

function supports_local_storage() {
return ('localStorage' in window) && window['localStorage'] !== null;
}
if (supports_local_storage()){
window['localStorage'][name] = value;
}

Local Storage пока ещё поддерживается не везде, но он, как правило, поддерживается там, где не поддерживается Flash - на всяких ипадах, ифонах, андроидах и т.п.
Поддерживаю. У Flash нет будущего,у HTML 5 - есть. Потому что Flash на мобильники не идёт, а с них уходит.
Поддержка localStorage есть в новых браузерах (Firefox 3.5, Chrome, Opera 10) , но здесь есть нюанс: вы не знаете, сколько места вам выделено. И никто не знает. Может, 10 Кб,а может, 100. На комментарий, впрочем, должно хватить.
Linux Firefox
 Москва
0
0
Если получится, буду использовать и html5 тоже. Ничто не мешает использовать все эти методы одновременно - места они почти не занимают в коде.
Linux Firefox
 Москва
0
0
Спасибо! Попробовал (см. апдейт этой заметки). Сохраняет! А как долго будет храниться записанное значение?
Windows Safari Chrome
0
0
Goodkat (#186871)
Теоретически - вечно.
А практически - в браузере есть галочка "очищать при выходе", если её поставить, то будет очищаться каждый раз при выключении браузера. Но её ставят только параноики :) Или пользователь может очистить вручную.

В Хроме у меня так: Настройки, там третья вкладка "Детали", там первая кнопка "Настройки контента", в открывшемся окне внизу кнопка "показать куки и другую фигню" - там видно, сколько места занимает local storage.

К тому же в local storage можно засунуть намного больше, чем в куки - мегабайты!
Правда, я плохо себе представляю, что вы можете там хранить кроме авторизации. Ну вот текст комментария разве что.

Попробуйте ещё функции
localStorage.setItem("key", "value")
localStorage.getItem("key")
localStorage.removeItem("key")
localStorage.clear();
это вроде бы "родные" html5-функции

А вот так можно посмотреть, чего же Ллео насохрянял:
javascript:eval("var aha = '';for(var key in window['localStorage']){aha = aha + key + '= ' +window['localStorage'][key] + '; '};alert(aha)")

эту строчку выполнить в адресной строке браузера
Windows Opera
0
0
[email protected] (xtmb.info)
> А что со ссылками? О чем вы?
Да пытался вставить ссылку через [url=http://blabla]blablabla[/url] - не получилось.
Windows Opera
0
0
[email protected] (xtmb.info)
Вот опять, кстати. А раньше работало.
Linux Safari Chrome
 Москва
0
0
Что именно?
Windows Opera
0
0
[email protected] (xtmb.info)
Это самое оформление. Были же bb-коды.
> А не надо ее оформлять. Просто пишите ссылку голым текстом, она сама оформится.
Я уж думал, поломалось.
Linux Safari Chrome
 Москва
0
0
Я не помню, может я и не делал bb-кодов по ссылкам. Да и зачем они? Автомату не трудно найти ссылки в тексте и самостоятельно ее оформить и подсветить, bb-урлы - вчерашний день какой-то.
Windows Opera
1
0
[email protected] (xtmb.info)
В общем-то дело не в бб-коде. А в том, что нельзя ссылки оформлять так, как хочется. Чем нельзя - непринципиально. :)
Раньше можно было, я помню. А щас, может, и к лучшему, что отключена эта фича.
Linux Safari Chrome
 Москва
0
0
А мне потом бегай и следи, как бы JavaScript в этой ссылке не оформили... ;)

Давайте я вам лучше сделаю со временем фичу загрузки фоток прямо в комментарий с локального диска (без урла в сети). Это будет интересно.
Windows Safari Chrome
0
0
Goodkat (#186871)
Кстати, фотки можно загружать просто перетаскивая их мышкой из проводника! (не знаю, работает ли в Линуксе :)
Поддерживается эта фича в Хроме и Firefox 3.5
Тут пример на русском: http://www.kigorw.com/articles/dd-file
там пример на django&j-query, но вроде понятно, как это сделать на чистом javascript и php.
Linux Safari Chrome
 Москва
0
0
А не надо ее оформлять. Просто пишите ссылку голым текстом, она сама оформится.
Windows Opera
0
0
хотелось бы ей стиль прописать - марджинг, паддинг - для картинки например
Linux Safari Chrome
 Москва
0
0
Ну, слушайте, это ж все-таки комменты. Мало ли кто какой стиль захочет прописать и какой паддинг, чтоб ленту разорвало в клочья и всё покрылось бигудями?

А писать самостоятельный движок по ревизии чужого HTML на предмет уязвимостей и ошибок... Пока не вижу оправданий такой дикой задаче.
Windows Opera
0
0
[email protected] (217888993625)
написал, подумал, стер все нафиг.
Linux Ubuntu
0
0
lleo.me/[email protected]Кирилл Цуканов
>Будет аккуратнее писать комментарии, заботясь о недописанном самостоятельно.
Например, существует расширение для файрфокса и хрома(*) — Lazarus: Form Recovery.
*тут должен был быть символ «бета», но движок его съел. Запилите поддержку юникода, пожалуйста :-)
Windows Firefox
0
0
[email protected] (alpha.fm)
Я решил сюда со своими повторяющимися каментами переметнутся, чтобы в основном блоге не мусорить. Мот попробую сейчас подвоить...
Другим браузером.
А вот другим браузером с включеным флешем нет глюка.
Windows Firefox
0
0
[email protected] (alpha.fm)
А если флеш отключен, то таки да..
Windows Firefox
0
0
[email protected] (alpha.fm)
Куда-то пропала кнопка "edit"

И если таки edit, тогда глюка нет - отправляется с первого раза.
Windows Firefox
0
0
[email protected] (alpha.fm)
Ну и напоследок еще жалоба.
Плохо что во время редактирования сообщения не работает стандарт для Ctrl+стрелки - перемещение по словам.
Linux Firefox
 Москва
0
0
Спасибо, все понял.
Попробую исправить сегодня.
Windows Opera
0
0
при проверке работы флэшкуков, опера определяет нормально, а ИЕ8 утверждает, что ничего подобного... настройки одинаковые, флэш обновлен, настройки флэша одинаковые

всего комментариев: 35

<< предыдущая заметка следующая заметка >>