Пару слов о Wap и PDA сайтах – 2

Кирилл Евсеев, May 9, 2011

В прошлый раз мы обсудили WAP-сайты и, надеюсь, пришли к общему выводу, почему не стоит поддерживать эту технологию. Однако, вопрос остаётся открытым, т.к. нашим сайтам всё ещё необходима мобильная версия. Сегодня мы обсудим PDA-версии сайтов.

Изначально, PDA – это personal digital assistant, обычное портативное устройство с различными полезными свойствами. К PDA по умолчанию будем относить все устройства подпадающие под характеристику мобильных – КПК, коммуникаторы, смартфоны и т.п. Нас в PDA интересует только возможность доступа к интернет, наличие браузера и малый размер дисплея. При этом, считаем, что мобильный браузер работает с давно знакомым нам всем HTML/JS. Нужно сделать отдельную ремарку – PHP и другие серверные языки никак не зависят от девайса клиента. Именно потому, что эти языки серверные. Единственная проблема, которая может возникнуть на стороне серверных языков – это куки, и как следствие, сохранение сессии в куках. Как правило, все мобильные браузеры вполне адекватно работают с куками (по крайней мере, в линейке телефонов Nokia), а значит, волноваться не стоит. Но протестировать всё равно будет нужно. Об этом чуть ниже.

Таким образом, нас, в основном, будет интересовать клиентский вывод. Вот ссылки на несколько хороших статей о вёрстке для PDA и некоторых JavaScript проблемах, с которыми столкнулись авторы:

http://www.websovet.com/pda-versiya-sajta

http://habrahabr.ru/blogs/webdev/19381/

Касательно этих статей, от себя добавлю, что при верстке следует обратить внимание на такой момент – есть множество мелких функциональных элементов, которые остаются мелкими в PDA-версии сайта и это очень неудобно использовать в дороге. Дело в том, что тестировщик, как правило, не испытывает никаких трудностей при тестировании сидя в мягком и удобном кресле. Но если вы едете, например, в трясущемся автобусе по плохой дороге, то в мелкие элементы попасть стилусом очень проблематично. К таким элементам можно отнести пагинацию страниц, рядом расположенные микроскопические ссылки-иконки и т.п. Возмите за правило такие элементы отображать на приличном расстоянии друг от друга и достаточно крупными по размеру. Для PDA действует то же правило, что и для обычных сайтов – вертикальные скроллеры – это нормально, горизонтальные – резко не приветствуются. Хотя экран некоторых моделей может быть реверсивно развёрнут на 90 градусов (т.е. маленькая вертикаль, большая горизонталь) стоит всё же ориентироваться на нормальное положение устройства. Если вы делаете резиновую вёрстку, то при развороте экрана, текст вполне нормально заполнит всю область отображения. Чем меньше картинок, тем лучше, – вплоть до их отсутствия.

Так же, большой англоязычный ресурс с информацией по WAP/WML. Хоть я и разнес WAP в прошлой статье в пух и прах, но иметь ссылочку на ресурс с информацией по теме никогда не помешает.
(more…)

Пару слов о Wap и PDA сайтах

Кирилл Евсеев, May 5, 2011

Я уверен, что скоро персональные компьютеры повторят судьбу динозавров. Мейнфреймы, cloud-computing, лэптопы, мобильные устройства и нестандартные гаджеты с доступом к паутине рано или поздно окончательно победят большие и неповоротливые ящики, напичканные железяками. Обычные PC останутся только в малобюджетных гос. организациях и ВУЗах и, однажды, какой-нибудь всемирный консорциум типа ISO объявит об отмене поддержки стандартов для писюков. Рынок PC пережил свой пик в конце 90-хх – начале 2000-хх и теперь из года в год показывает стабильное снижение продаж. Вычислительные мощности топовых ноутбуков вполне сопоставимы с вычислительными мощностями топовых PC. Конечно, топовые PC продолжают выигрывать, но для абсолютного большинства бизнес-пользователей производительности мобильных платформ хватает с огромным запасом. Последний форпост PC – это геймеры. Но, рано или поздно, они окончательно пересядут на специализированные игровые консоли, а для чата и сёрфинга заменят свои писюки на ноутбуки. Последняя проблема в мобильных устройствах – ёмкость батареи. Рано или поздно эта проблема будет разрешена и PC переместятся в пыльные музеи кремниевых микросхем.

Но пока этого события не произошло, посмотрим на всю нашу деятельность критическим взглядом. Сколько сайтов сегодня имеет мобильную версию? Имеет ли сайт вашей компании мобильную версию? Имеет ли мобильную версию ваш хоумпейдж? Или блог? Насколько удобно вам работать с удалённым ресурсом с помощью телефона? Вряд ли на все эти вопросы можно ответить однозначное и твёрдое да. Конечно, огромные порталы уже давно имеют свои мобильные версии. Но бизнес рунета почему-то шевелится крайне медленно. Моя компания даже “дарит” мобильную версию сайта в случае хорошего и жирного заказа. Хотя, с точки зрения бизнеса, владельцы доменов должны давным давно обратить внимание на сайты, оптимизированные для мобильных платформ. (more…)

JavaScript – Подтверждение клика по ссылке.

Вячеслав Гринин, April 29, 2011

Иногда, во избежание случайного клика по ссылке нам требуется обеспечить согласие пользователя на этот переход. Наблюдать подобное поведение можно например на сайте вконтакте, где при клике на ссылку, размещенную другим пользователем, сайт предупредит о возможной опасности перехода по ссылке и попросит подтверждения того, что переход запланирован пользователем и он осознает риски. Я хочу предложить два варианта реализации такой функциональности:

  1. Без создания дополнительных страниц, чистый JavaScript. Вариант простой но не дающий возможности кастомизации всплывающего окна запроса подтверждения.
  2. С созданием дополнительных страниц. Вариант посложнее, но теперь внешний вид окна запроса и отображаемые на нем данные – полностью в нашей власти.

Первый вариант основан на использовании атрибута onclick элемента <a>. Как известно, если вначале атрибута onclick записать ключевое слово return, то браузер продолжит переход по ссылке только если функция вызываемая в onlick возвратит true.

Для формирования диалогового окна запроса подтверждения используем стандартный диалог confirm, которому в качестве аргумента подается сообщение, отображаемое пользователю, сам же диалог, помимо сообщения будет содержать кнопки “OK” и “Cancel”.

<a href='http://yandex.ru' onclick='return confirm("Вы уверены, 
что хотите покинуть сайт?")'>Перейти на Яндекс</a>

Проверьте, как это работает прямо на этой странице, щелкните на следующую ссылку:

Перейти на Яндекс

Второй вариант чуть посложнее:
(more…)

Переменные переменных. Зачем они нужны?

Кирилл Евсеев, April 25, 2011

Всем привет. Сегодня мы поговорим о переменных переменных и выясним, зачем они всё таки нужны (или не нужны).

В самом простом виде переменные переменных показаны в справке PHP. А именно –

$a = 'hello';
$$a = 'world';
echo $a . ${$a}; 

Подобная кривая конструкция выдаст на экран hello world. Другими словами, ${$a} эквивалентна вызову $hello. Не правда ли.. ужасно? Добавим сюда проблему неоднозначности, которая возникает при попытке обратиться к элементам массива (это подробно описано в справке по адресу http://ua.php.net/manual/en/language.variables.variable.php), добавим сюда возможность добавлять к имени переменной любое количество знаков доллара, о которой обычно не пишут в учебниках, и возникнет вполне закономерное недоумение – зачем это вообще нужно?

Самое главное правило, которого должен придерживаться любой разработчик в любом проекте – код пишется для людей, а не для машин. Это правило помимо негласного этикета в среде профессионалов в виде комментариев и отступов, ещё и экономически обоснованно. Дело в том что сегодня разработка ПО стремительно дешевеет (не без помощи демпинга индусов). Прямым следствием является то, что поддерживать код должно быть дешевле, чем его писать. Т.о. становится понятно, что читабельный, понятный и простой в понимании код, куда как более ценен, чем процессинг формы на Brainfuck’e (кто не в курсе, пусть насладится http://en.wikipedia.org/wiki/Brainfuck), пусть даже на Brainfuck’e этот процессинг работает на 0.0001 секунду быстрее.

Добавим сюда огромные вычислительные возможности современных серверов, которые могут прожевать мегаметры самого бездарного кода в течение секунды и станет понятно, что деньги, затрачиваемые на поддержку, должны быть минимальными. Разработчик должен иметь возможность спокойно и быстро разобраться в коде, написанном соседней командой, даже через пару лет после финального релиза проекта. Реалии PHP вполне это позволяют – всё таки это скриптовый язык, а не ассемблер.
(more…)

Пивот

Кирилл Евсеев, April 19, 2011

Всем привет. Сегодня мы коснёмся одной очень интересной темы, которая очень слабо освещена в рунете. Тема эта больше теоретическая, и, скорее всего, в обычных проектах вы с этим не столкнётесь никогда, но уж если столкнётесь и не будете знать, что перед вами, пара-тройка бессонных ночей вам гарантированна. С другой стороны, если перед вами возникнет задача, где можно использовать пивот, вы сможете резко повысить производительность вашей системы. А для веб производительность всегда была критична. Попробуем же потратить пол часа сейчас и отлично выспаться потом, когда-нибудь в будущем 🙂

Итак, пивот. Что это такое и с чем его едят? Скажу сразу, к пиву это не имеет никакого отношения. А имеет отношения к реляционным базам данных, например, к MySQL. Пивот – это разворот таблицы. Или таблица разворота. Вот видите, это уже, практически, пивот. Придумали эту штуку два оч. умных дядьки – Бил Джелен и Майк Александер. Подробнее об истории пивота можно посмотреть в английской википедии (http://en.wikipedia.org/wiki/Pivot_table).

Приведём пример, чтобы понять, что такое пивот, т.к. без примера и на словах понять это практически невозможно (если Эйнштейн не был вашим дедушкой, а Тьюринг – братом, конечно).
(more…)

Поиск по блогу:
Подписаться:
Популярные:
Облако тегов:
Разное:
Счетчик: