Интерблог

Архив рубрики "jQuery"

А ещё AJAX нужен для...
Автор: Ognezmej. Опубликовано: 28 Мая 2012

Предположим, у Вас запускается тяжёлый PHP-скрипт. Достаточно тяжёлый, чтобы с шансами не уложиться в отпущенные сервером 30 секунд. Разумеется, можно через set_time_limit(), .htacess, php.ini попробовать изменить максимальное время выполнения скрипта, но далеко не все хостеры такое позволяют. По вполне закономерным причинам.

Что делать? Использовать аякс. Для начала осознаем простую истину. Тяжёлый скрипт обычно представляет собой не одну-единственную, а последовательность нескольких/многих функций, в том числе и зацикленных. Ага! Что такое функция? Это входные данные, некие действия и выходные данные. Последовательность функций - это когда входные данные последующей функции являются выходными данными предыдущей. Итак, разбиваем наш тяжёлый скрипт на составляющие функции так, чтобы исполнение каждой с гарантией уложилось в разрешённый отрезок времени. Например, делаем файл ajax.php, где в зависимости от переданной через GET переменной запускается та или иная функция. Делаем основной файл, из которого аяксом будем запускать поочерёдно нужные нам функции, анализируя их ответы. Благодаря Jquery эта задача превращается в чистое удовольствие.

$(селектор).load('ajax.php?function=one', {'var1':var1, 'var2':var2}, function(){анализируем выходные данные, запускаем функцию two, и так далее});

Для скорости работы данные из ajax.php можно получать в json, для простоты и наглядности - прямо в html.

Минусы - общее время работы всё-таки увеличивается. Но зато хотя бы работает. Плюсы - такую игрушку можно легко украсить progressbar-ом, а также можно легко отслеживать ошибки, не дожидаясь окончания работы всего скрипта. Ещё можно добавить кнопку "пауза", "продолжить" и наслаждаться тотальным контролем над выполнением приложения:)

 

Метки: Ajax, jQuery, PHP, Кодинг, Советы

JQuery. Щадящий режим.
Автор: Ognezmej. Опубликовано: 13 Мая 2011

Допустим, у нас есть задача, решаемая средствами JQuery. Допустим, она решается подключением какого-нибудь общеизвестного плагина. Но! Отдельные моменты плагином не реализованы, либо реализованы не так, как хотелось бы. А в целом, да, плагин подходит.

Что делать?

Есть два варианта. Первый - скачать неминимизированную версию плагина (с отступами и переводом строк), раскурочить её, и запихать туда всю необходимую функциональность. Второй вариант - не трогая плагин, написать код, который делает всё, что нужно уже с результатами плагина. Как бы плагин к плагину.

Второй метод условно назван щадящим, поскольку не затрагивает уже существующие модули. Преимущества очевидны - не тратятся время и силы на изучение плагина изнутри - а плагины, они, вообще-то, для того и сделаны, чтобы их не изучали, а тупо применяли - отсюда и жалобы на излишнюю функциональность. Также к преимуществам следует отнести совместимость - к примеру, выходит новая версия плагина, или более быстрая, или исправленная - можно просто заменить ею старую - и всё работает. В отличие от первого метода, когда придётся опять копаться в кодах. Наконец, универсальность. К примеру,  на сайте более одного места, где данный плагин нужно использовать с разными модификациями. В первом случае фактически пришлось бы обращаться к различным скриптам модифицированного плагина, и ещё неизвестно, как оно бы было с их совместимостью. Здесь же плагин один, только разные надстройки в зависимости от того, что и где вам нужно.

Из недостатков можно отметить возможное падение производительности - если сам плагин и ваша к нему надстройка медленные сами по себе, возможен визуальный глюк - пользователь не сразу увидит то, что должен видеть, на некоторое перед ним мелькнёт результат первоначального плагина. Визуальное визуальным и вышибают - скрытием элемента, либо заплаткой поверх с надписью 'Loading'  или что-то в этом роде. Ещё можно назвать субъективный такой момент как меньшее количество экспириенса, чем, ежели бы вы вручную ковыряли плагин. Но это уже кому - опыт, кому - результат.

 

 

Метки: jQuery, Кодинг

Галерея PrettyPhoto
Автор: cyberacing. Опубликовано: 17 Июля 2010

В работе над одним проектом встал вопрос использования плагина LightBox. Скачал его, пытался установить. Все отлично в плагине, но он не удовлетворял всем требованиям. Поэтому пришлось искать более функциональные аналоги. И тут наткнулся на PrettyPhoto. Разобравшись, я понял, что это мой выбор. Он очень удобный, понятный и легконастраиваемый. К тому же этот плагин позволяет работать не только с фото. В области просмотра можно выводить видео с YouTube, ролики в формате .mov (Apple QuickTime), содержимое во flash-формате и наконец вообще любой контент через iframe. И еще он имеет свой API, чего у других не наблюдалось.

Кроме множества различных настроек плагин предоставляет еще 4 метода:

$.prettyPhoto.open('path/to/image','Title','Description') – метод позволяет открыть нужную галерею.

$.prettyPhoto.changePage('next') – с помощью этого метода можно осуществить переход к следующему изображению галереи.

$.prettyPhoto.changePage('previous') – с помощью этого метода можно осуществить переход к предыдущему изображению галереи.

$.prettyPhoto.close() – с помощью этого метода можно закрыть галерею.

Самый большой интерес вызовал метод, с помощью которого можно открыть галерею практически как угодно и откуда угодно. Именно такое требование было в данном проекте. Нужно было открыть галерею в "лайтбоксе", при этом по клику перейти на страницу галереи и открыть фотографию, на которой был клик на предыдущей странице-превью галерей. Как оказалось задача решалась просто :)

Для желающих изучить подробнее и посмотреть демо-примеры предлагаю обратиться на сайт разработчика: PrettyPhoto

 

Метки: jQuery, Кодинг

Популярные записи

Принцип неопределённости в РНР

Принцип неопределённости в MYSQL

Недолёт

А ещё AJAX нужен для...

Принцип неопределённости в PHP - праздник продолжается!

Эмуляция плавности в ActionScript.

Программная анимация в ActionScript

Анимация при наведении в ActionScript

Использование кодировки UTF-8

Буквицца

Архив записей  

2019

Янв  Фев  Мар  

2018

Янв  Фев  Мар  Апр  Май  Июн

Июл  Авг  Сен  Окт  Ноя  Дек

2017

Янв  Фев  Мар  Апр  Май  Июн

Июл  Авг  Сен  Окт  Ноя  Дек

2016

Янв  Фев  Мар  Апр  Май  Июн

Июл  Авг  Сен  Окт  Ноя  Дек

2015

Янв  Фев  Мар  Апр  Май  Июн

Июл  Авг  Сен  Окт  Ноя  Дек

2014

Янв  Фев  Мар  Апр  Май  Июн

Июл  Авг  Сен  Окт  Ноя  Дек

2013

Янв  Фев  Мар  Апр  Май  Июн

Июл  Авг  Сен  Окт  Ноя  Дек

2012

Янв  Фев  Мар  Апр  Май  Июн

Июл  Авг  Сен  Окт  Ноя  Дек

2011

Янв  Фев  Мар  Апр  Май  Июн

Июл  Авг  Сен  Окт  Ноя  Дек

2010

Янв  Фев  Мар  Апр  Май  Июн

Июл  Авг  Сен  Окт  Ноя  Дек

2009

Янв  Фев  Мар  Апр  Май  Июн

Июл  Авг  Сен  Окт  Ноя  Дек