Archive

Archive for the ‘javascript’ Category

Подсказка: private-переменные в Javascript

February 24th, 2010

Это перевод статьи Quick Tip: Private Variables in JavaScript.

Подсказка: private-переменные в Javascript

Из-за зависимости JavaScript от глобальных переменных, можно легко забыть, что создание часных переменных (private variables) может быть реализовано так же просто, как и замыкания. За несколько минут, я продемонстрирую две основные техники, предоставляющие часные переменные и медоды в ваших проектах. Read more…

wert2all javascript, программирование , , , ,

Паттерн Registry в Javascript

October 19th, 2009

Мне почему-то понадобилось реализовать паттерн проектирования Registry на Javascript.  Как сделать это на PHP для меня не представляло сложности, а вот понять объектную модель Javascript у меня никогда не получалось. Самое сложное для меня остаётся понять, почему вышло реализовать Singleton.

Код пишу сюда, потому что могу и забыть как делается ;)

<script type="text/javascript">
 function Registry(){
   if(!this.instance){
     /* нет пока объекта
         создадим
     */
       function registry(){  }
       /* сборище хэшей для передаваемых объектов */
       registry.prototype.reg = {}
       /* метод для добавления объектов */
       registry.prototype.add = function(name, object){
          this.reg[name] = object;
       }
       /* метод для получение объектов */
       registry.prototype.get = function (name){
          return this.reg[name];
       }

      this.instance = new registry();
   }
 return this.instance;
 }

.* а так его использовать */
/* добавляем в реестр объект */
 Registry().add('test', 3);
/* получаем объект */
 alert(Registry().get('test'));

 </script>

Вот и всё. И даже не скажешь, что не спал ночь )

wert2all javascript, программирование , , ,

Функция отмены последнего действия (Undo) – это просто(Вторая часть): Срочные события

November 9th, 2007

undo.jpgЭто вторая часть серии “Функция отмены – это просто”. Если вы их пропустили, то прочитайте первую часть [ перевод ].

В предыдущий раз рассматривали метод очереди событий, как полностью клиентскую реализацию лёгкой многоуровневой функции отмены. Я упоминал о паре обмолвок: это не работает в многопользовательской среде и не работает в время-зависимых событиях, как отправка email. Я пропустил существенную оговорку, на которой обратил внимание один с моих читателей, Alexander Botero-Lowry: два таба, в которых открыта одна и та же страница, не синхронизируются. Я написал, как это решить с помощью cookies [ перевод ]. Read more…

wert2all javascript, интернет, перевод , ,

Функция отмены последнего действия (Undo) – это просто (Часть 1.5)

September 27th, 2007

Продолжаю переводить серию статей о реализации Undo.

Это вторая часть первой части серии заметок “Функция отмены последнего действия (Undo)”. Если вы её пропустили, то сначала прочитайте первую часть (перевод первой части).Один с моих читателей, Alex Botero-Lowry, отметил большую проблему реализации Undo c очереди полностью на стороне клиента: если пользователь открывает эту же страницу на второй вкладке браузера для просмотра, то эти страницы могут быть не синхронизированы. В примере to-do листа, если вы удаляете три to-do листа и открываете новую вкладку или окно этой же страницы, то эти to-do всё-таки останутся. Почему? Потому что первая страница знает о удалении (хотя оно и не законченное), а вторая – нет. Read more…

wert2all javascript, usability, web, перевод, программирование , , ,

Функция отмены последнего действия (Undo) – это просто (Часть 1)

September 24th, 2007

Я почитываю материалы по многим темам Internet, в том числе и по usability. А тут попалась на глазуа статья, как делать отмену последнего действия под Web. Стало интересно – решил переводить.

Как пользователи, мы делаем ошибки. Как дизайнеры, мы должны спроектировать интерфейсы с учётом этого, как я и утверждал в своей недавней статье Never Use a Warning When You Mean Undo ( перевод этой статьи – Реализуйте возможность отмены действия, вместо диалогов подтверждения ). Undo – это отличный спасательный круг, придающий потрясающее чувство надёжности работы интерфейса. Вот почему каждое десктопное приложение от Word до Photoshop предоставляет возможность многоуровневой отмены действия.

Так почему же Web-приложения которые предоставляют хоть какую-либо возможность отмены так немногочисленны? Ответ я часто получал, что эту функцию трудно реализовать.Я здесь, чтобы сказать вам, что это не так. Read more…

wert2all javascript, usability, web, перевод, программирование

Как установить Aptana на уже существующий Eclipse

July 25th, 2007

Кто не знает то пока я web-developer (нравиться мне это слово. И просто вэб-программист не подходит). И в дому и в рабочей обстановке, системой, на которой происходит процесс набора букв с сайты, является ново-старая openЗЮЗЯ (именно в такой последовательности больших букв, так как openSUSE её настоящее имя ;) ). Если посчитать, сколько ПО использую . для работы, то получается многовато Read more…

wert2all javascript, php, web, настройка

Аналоги radiobutton

July 11th, 2007

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

Я не люблю переопределения интерфейса. Я терпеть не могу, когда Опера выводит свое окно не так как настроено в KDE, а как-то по-другому. Ведь если разработчики сделали методы для вывода окна, то зачем изобретать велосипед? Итак делает не только Опера: Zend DE и куча других программ. Зачем?

Но. Вместе с этим я понимаю, чем грозит линковка большущих либ, в которых тебе нежно только кнопка “Ok”. Проект разрастается и, как следствие, уменьшается время загрузки приложения.

Теоретически это касается и WEB. Но только косвенно. Ведь все согласны, что стандартных input не то что мало, а их НЕТ! Конечно, саморобные контролы снижают узнаваемость их пользователями, но если подойти с умом, то можно сделать вполне удачные аналоги.

Вот и я, дабы упростить себе жизнь (лень мне писать кучу javascript-кода ;) ) решил вместо стандартных radiobutton сделать свои. На самом деле, сложного нет в этом ничего, да и удобностей поболе, как по мне. Read more…

wert2all javascript, web, верстка, программирование

Кто получил стиль?

July 3rd, 2007

Из-за поддержки всеми A-grade браузерами DOM, множество основных (и некоторые сложные) взаимодействия могут быть выполнены с относительной лёгкостью. Такие штуки как добавление и удаление элементов, вставка HTML-тегов и работа с событиями сейчас довольно податливы в основе cross-браузерности. Там, естественно, несколько причуд которые вы должны будете учесть, но, в целом, большинство вещей работают, как вы и ожидали. За исключением динамической вставки CSS на вашу страницу. Read more…

wert2all javascript, wtf, перевод, программирование

зло with

July 3rd, 2007

На днях вспоминал название оператора в javascript, который уменшает написание (физическое набивание) иерархии обьектов в классе, массиве и тд. Нашёл. Это with. Если раньше я писал:

test_obj.wtf.count = data.count;
test_obj.wtf.price = data.price;
test_obj.wtf.shit = data.shit;
test_obj.wtf.shit2 = data.shit2;

То это-же можно записать так:

with (test_obj.wtf){
  count = data.count;
  price = data.price;
  shit = data.shit;
  shit2 = data.shit2;
}

Как бы всё хорошо и удобно. Но вот мне на глаза попалась статья на YUI-блоге, которую и попробую перевести.

Read more…

wert2all javascript, перевод, программирование

checked, name в checkbox и Ослик [IE]

June 27th, 2007

Я одного немогу понять – как IE со своими глюками и корявостью может держать 80% пользователей? Его тормознутость, полное игнорирование стандартов и непонятное поведение, причём всё рандомно. Это все знают и ничего не могут поделать. Даже сами разработчики. Тем более они. Так как работаю в webdev, очень много времени уходит на подтачивание разногласий и глючков со стороны IE. И седьмая версия точно положение не исправила. Вот и сегодня потратил полтора часа на понимание и исправление бага IE. А Вы знаете, что если динамически создавать checkbox или radio, то свойство name и checked установить после создания не получится? Нет? А я уже. Решение есть. Read more…

wert2all javascript, wtf, верстка, программирование