четверг, 25 марта 2010 г.

Как мониторить ajax запросы в google chrome

В последнее время часто стал пользоваться браузером chromium(он же google chrome). Не буду перечислять все достоинства данного продукта, скажу только что он быстр и это является его главным преимуществом.
Возникла задача отслеживать ajax запросы web приложения. Привычного файрбага, к сожалению здесь нет. Точнее Firebug то в chrome можно поставить в виде расширения, но не полноценный( вкладка "сеть" там отсутствует).
Но оказалось, что все необходимые разработчику инструменты уже доступны "из коробки".
Как это сделать?
1)зайти в
Управление текущей страницей(справа вверху кнопочка с пиктограммой листочка)->разработчикам->Инструменты разработчика
2)Появится окно "инструменты разработчика", там перейти в Resources
3)нажать Enable resource tracking
4)Наверху окна появится еще один тулбар, там выбрать XHR
Ну вот собственно и все. Слева отображается список запросов, щелкнув на один из которых, можно посмотреть содержимое и заголовки запроса браузера и ответа сервера.

среда, 24 марта 2010 г.

Определение последней итерации в цикле foreach PHP

Иногда в циклах foreach необходимо что-то выполнить в момент последней итерации цикла. Это делается довольно просто:

foreach($items as $item)
{
//...
//Условие последней итерации
if($item === end($items))
{
//Тут идут действия, которые надо выполнить при завершении цикла
}
}

вторник, 23 марта 2010 г.

Заполнение поля приоритета извлечения(Priority) на основе Order By в MySQL

Часто для извлечения записей в определенном порядке в таблицах создается специальное поле, назовем его Priority. В нем хранится целое число, которое и определяет порядковый номер конкретной записи в запросе. При таком подходе иногда возникает задача пронумеровать поля Priority c помощью Order By. Вот одно из решений:

SET @rownum=0;
UPDATE [имя_таблицы] t, (SELECT @rownum:=@rownum+1 rownum, [имя_таблицы].* FROM [имя_таблицы] Order By [Name] ASC) r
SET t.[Priority] = r.rownum
WHERE (t.[Id] = r.[Id]) ;

[Имя таблицы] - Имя таблицы в БД
[Name] - Имя поля, по которому производится сортировка в Order By
[Prioriry] - Специальное поле в таблице, которое используется для сортировки.
[Id] - Первичный ключ таблицы

вторник, 17 ноября 2009 г.

Переключение раскладки клавиатуры в OpenSuse 11.2

Сегодня обновил openSuSE с 11.1 до 11.2 и сразу же столкнулся с проблемой: перестала переключаться раскладка клавиатуры.
Оказалось все довольно просто. Надо было зайти поправить конфиг /etc/X11/xorg.cong в секции ServerFlags раскомментировать/добавить строчку
Option "AutoAddDevices" "off"

И все заработало.

вторник, 13 января 2009 г.

Структура пакетов, из которых состоит фреймворк GWT.

1.Пользовательский интерфейс

com.google.gwt.user.client

Пакет дает доступ к АПИ браузера для создания динамической веб-страницы. Класс DOM позволяет изменять веб-страницу через объектную модель документа(DOM).

com.google.gwt.user.client.ui

Представляет собой Фреймворк для создания пользовательских интерфейсов. Очень похож на AWT в Java.

2.Обращение к серверу(AJAX)

com.google.gwt.http.client

Осуществляет кросс-браузерное асинхронное обращение к серверу вокруг объекта XMLHttpRequest.

com.google.gwt.user.client.rpc

com.google.gwt.user.server.rpc

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

3.Форматирование данных

com.google.gwt.xml.client

Этот пакет дает возможность обрабатывать и создавать данные в формате XML.

В основном используется для асинхронных обращений к серверу(AJAX).

com.google.gwt.json.client

Этот пакет выполняет аналогичные функции, как и com.google.gwt.xml.client, однако обрабатывает он не XML, а JSON – т.е. данные в формате объекта JavaScript.

4.Пакеты эмуляции JRE

java.lang

Этот пакет включает в себя базовые классы Java, такие как Integer и String.

java.util

Наборы утилитов, для кодирования на языке Java.

5.Утилиты

com.google.gwt.junit.client

Пакет, необходимый для тестирования производительности приложения.

com.google.gwt.i18n.client

Набор инструментов для локализации приложений.

com.google.gwt.core.ext

Расширения, необходимые для компиляции java-кода в JavaScript.

Особенностью фреймворка GWT является, независимость его пакетов. Т.е. необходимо использовать только те пакеты, которые нужны. И скомпилирован будет только код из подключенных пакетов.