четверг, 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] - Первичный ключ таблицы