![]() ![]() ![]()
Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера RMCreative.ru - Блог/Записи в блоге |
![]() |
RMCreative.ru - Блог
Голосов: 1 Адрес блога: http://rmcreative.ru/feed/ Добавлен: 2008-06-12 21:34:00 блограйдером ZaiSL |
Foundation 3
2012-06-30 00:53:36 (читать в оригинале)Вышла третья версия фреймворка Foundation. Скорее всего вы слышали о популярном Twitter Bootsrap. После него большинство фреймворков смотрится блекло: элементов меньше, разметка ещё нелогичней, куча багов и ничего нового. Так вот Foundation отличается от Bootstrap в лучшую сторону:
- Разметка более лаконичная и логичная.
- Заточен для работы с кучей всяких устройств. Можно контролировать, как именно будет выглядеть сайт при каких параметрах экрана. Имеется очень гибкая адаптивная сетка.
- Для всего используется
box-sizing: border-box
. - Неплохие наборы кнопочек, формочек, менюшек и мелких элементов.
Табы, галерея и модальные окошки, которые отлично работают на всех устройствах.
Пробуем
- Документация и демонстрация возможностей
Facebook JavaScript SDK, новые fql.query и fql.multiquery
2012-06-29 18:24:59 (читать в оригинале)Много где написано, что REST API Facebook устарел, но, я не нашёл в официальной документации JavaScript SDK, что с этим делать в случае FQL. Описанные в примерах fql.query
и fql.multiquery
посылают запросы как раз на устаревший restserver.php
.
Как это обычно бывает у Facebook, решение сделали по-тихому. Кому нужна документация, верно?
fql.query
:
// старая версия FB.api( { method: 'fql.query', query: 'SELECT name FROM user WHERE uid=me()' }, function(response) { alert('Your name is ' + response[0].name); } ); // новая версия FB.api('/fql', { q: 'SELECT name FROM user WHERE uid=me()' }, function(response) { // формат ответа отличается alert('Your name is ' + response.data[0].name); } );
fql.multiquery
:
// старая версия FB.api( { method: 'fql.multiquery', queries: { username: 'SELECT name FROM user WHERE uid = me()', userpic: 'SELECT pic_big FROM user WHERE uid = me()' } }, function(response){ console.log(response); } ); // новая версия FB.api('/fql', { q: { username: 'SELECT name FROM user WHERE uid = me()', userpic: 'SELECT pic_big FROM user WHERE uid = me()' } }, function(response){ console.log(response); } );
Удобная функция для тех, кто хочет использовать Yii и писать SQL
2012-06-21 23:38:29 (читать в оригинале)Использовать можно так:
$posts = command('SELECT * FROM post WHERE id IN(%s)', array(1, 2, 3))->queryAll(); foreach($posts as $post) { print_r($post); } $id = command('SELECT id FROM post WHERE name = %s AND status=%d', 'Alexander', 10)->queryScalar(); echo $id; $post = command('SELECT * FROM post WHERE id = %d', 101)->queryRow(); print_r($post);
Блокирование сессий в PHP
2012-06-21 13:53:22 (читать в оригинале)Как-то я потратил довольно много времени, пытаясь понять, почему десяток асинхронных запросов к PHP-скрипту выстраивается в очередь вместо того, чтобы отрабатывать параллельно.
Чтобы показать наглядно, набросаем пару тестовых скриптов.
test1.php
session_start(); sleep(10); echo '1';
test2.php
session_start(); echo '2';
Ничего необычного, правда?
Теперь запустим их параллельно. Воспользуемся jQuery:
$.get('/test1.php'); $.get('/test2.php');
В итоге получается вот такая картинка (это вкладка Net из Firebug):
test1.php
заблокировал работу test2.php
.
При использовании сессий «из коробки», данные хранятся в одном единственном файле, который оказывается заблокированным с момента вызова session_start
и до окончания работы скрипта.
В том случае, если сессия вам нужна только для чтения, или есть возможность записать всё необходимое перед медленной частью скрипта, можно её закрыть явно при помощи session_write_close()
:
session_start(); session_write_close(); sleep(10); echo '1';
В этом случае мы получим желаемую картину:
Если же необходимо писать в сессию после медленных операций, придётся сменить «коробочную» сессию на свою реализацию с неблокируемым хранилищем, таким, например, как база данных.
Стоит отметить, что если при этом не позаботится о race condition, можно наступить на хорошие такие грабли.
Материалы:
- PHP Session Locks – How to Prevent Blocking Requests
- Speeding up Yii or why should you use DB sessions
- PHP Sessions – Files vs Database Based
- Troubles with Asynchronous Ajax Requests and PHP Sessions
PHP Performance, Rasmus Lerdorf
2012-06-14 22:48:15 (читать в оригинале)Похоже, материалы с DevConf централизованно выкладываться не будут и всё остаётся на усмотрение докладчиков. Многие спрашивают слайды отца-основателя PHP, Расмуса Лердорфа. Вот они:
PHP Performance
Работают не во всех браузерах, листаются стрелками. Материал действительно интересный. Всем советую.



![]() | ||
+144 |
150 |
Коптящий_Небо |
+133 |
151 |
SLAVASTIK |
+126 |
163 |
Илья Лавров |
+126 |
195 |
J-Misty |
+113 |
164 |
Поисковая машина индейца Джо |
![]() | ||
-2 |
8 |
Алена_Макси |
-6 |
5 |
КнигоБлог |
-27 |
62 |
Тайный дневник Фингуса |
-28 |
9 |
М а с с а р а к ш |
-28 |
67 |
Реклама в картинках |

Загрузка...

взяты из открытых общедоступных источников и являются собственностью их авторов.