Сегодня 6 июля, воскресенье ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7281
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
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

<?php
session_start();
sleep(10);
echo '1';

test2.php

<?php
session_start();
echo '2';

Ничего необычного, правда?

Теперь запустим их параллельно. Воспользуемся jQuery:

$.get('/test1.php');
$.get('/test2.php');

В итоге получается вот такая картинка (это вкладка Net из Firebug):

test1.php заблокировал работу test2.php.

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

В том случае, если сессия вам нужна только для чтения, или есть возможность записать всё необходимое перед медленной частью скрипта, можно её закрыть явно при помощи session_write_close():

<?php
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

Работают не во всех браузерах, листаются стрелками. Материал действительно интересный. Всем советую.



Страницы: ... 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 ... 

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по сумме баллов (758) в категории «Истории»


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.