Все о web разработке на xdan.ru
  • Регистрация
  • Войти
         

Menu
  • Главнаявсе о web разработке
  • CopySiteСервис
      • Новости сервиса CopySite
  • Категориивсе материалы
      • JavaScript
          • jQuery
              • Обзор плагинов
      • PHP
          • Yii
          • Laravel
      • Новости Web технологий
      • Soft
          • Opera
      • Парсеры
      • CMS
          • Joomla
              • Документация для разработчиков Joomla
          • Danneo
          • UMI
          • Drupal
      • Социальные сети
      • Из жизни
      • Политика
      • Мои разработки
          • Конструктор Yandex карт
      • Новости сайта
      • SEO
      • Защита сайта
      • Администрирование WEB сервера
      • Монетизация сайта
      • web разработка
      • Железо
      • Хостинг
      • Игры
      • Про киномнение о кино
      • Нативное программирование
      • Видео
  • Магазинкупить продукты сайта
  • Joomlaвсе для joomla
      • Плагин CTRL+S быстрое сохранение материала в Joomla
          • Скачать плагин CTRL+S
      • Создаем собственную SEF систему для Joomla
      • Как написать Joomla плагин для xmap
      • Модуль Конструктор Яндекс Карт для Joomla
          • Скачать модуль Конструктор Янлекс Карт для Joomla
      • Компонент Яндекс Карты для Joomla
          • Документация компонента Яндекс Карты для Joomla
          • Демонстрация - лицевая часть
          • Демонстрация - администратор (demo,demo)
          • Уроки
      • Менеджер перенаправлений Joomla
  • Наши разработкиавторские разработки
      • HTML Map generator
      • liveadd
      • Конструктор Яндекс Карт
      • Онлайн синонимайзер текстов
      • Joomla Module Generator
      • Joomla плагин CTRL+S AutoSave
      • Лучший DateTimePicker
      • miniMySQLAdmin - легковесная альтернатива phpMyAdmin
      • Joomla модуль Конструктор Яндекс Карт
      • Скачать копию сайта
  • Конструктор Yandex картгенератор кода для Яндекс карт

Кеширование AJAX запросов

Подробности
Категория: jQuery
Опубликовано: 14 апреля 2015
Просмотров: 5313

Кеширование ajax запросовВо времена сверх динамичных сайтов на ajax, никого не удивишь поиском по сайту с огромным числом параметров. Когда клик по чекбоксу вызывает подгрузку сотен элементов. Порой, такая загрузка продолжается приличное время. Во времена классических(однопоточных) сайтов мы просто кешировали всю страницу целиком и работали с ней. Сейчас такое не пройдет и чтобы проверить, как будет выглядеть элемент, надо дождаться полной загрузки. И ладно если это просто загрузка новостей. А если это сложная поисковая форма у туроператора, а на сервере запускается десяток парсеров при каждом смене параметров фильтра. Такие ajax запросы могут по времени быть очень и очень долгими. 

В почте я расскажу, как можно кешировать ajax запросы сделанные на jQuery, но принцип один и тот же для всех ajax библиотек. Нам просто каким-то образом надо добавить плагин, к ajax модулю jQuery, и сохранять в локальное хранилище запросы.

Рассказать друзьям
Подробнее... 1 комментарий

method_exists() против is_callable()

Подробности
Категория: PHP
Опубликовано: 18 февраля 2015
Просмотров: 4524
  • php
  • native php
  • vanila.php
  • is_callable
  • method_exists

 Одну вещь, которую я часто вижу, когда просматриваю чужой код на php, это не правильное использование функции  method_exists(), и это требует немного разъяснений.

Это типичный пример того, о чем я тут говорю

if (method_exists($object, 'SomeMethod')){
  $object->SomeMethod($this, TRUE);
}

Цель у этого куска кода довольно проста - понять: имеет ли некий объект (переменная $object) метод с названием SomeMethod, если так то вызвать его, подав несколько аргументов на вход

Рассказать друзьям
Подробнее... 5 комментариев

Как написать свой фреймворк на php. Обработка ошибок. Урок 4

Подробности
Категория: PHP
Опубликовано: 18 февраля 2015
Просмотров: 7206
  • error
  • error_reporting
  • native php
  • ошибки
  • фреймворк
  • vanila.php
  • ideal
  • exception

Обработка ошибок в php, это весьма занятная вещь. С одной стороны, в этом языке есть все, чтобы обработать и вывести ошибку. С другой, в нем есть такой тип ошибок, который ни коим образом не обрабатывается. Это Fatal Error, или ошибки синтаксиса. 

Ошибки таких типов не попадают в обработчики, они просто выводятся как есть. 

Дисклеймер

Код ниже, без тени сомнения, взят с фреймворка Yii. Цель данного цикла ни в том чтобы написать свой велосипед, а в том чтобы знать, как этот велосипед в принципе устроен.

Итак, в прошлых уроках мы создали макет приложения, пару страниц, роутер и шаблонизатор. Мы даже объявили такой класс

class Except extends Exception{}

который ничего не делает. Зайду немного вперед, он и сейчас ничего не будет делать. Но мы поймем зачем он в принципе будет нужен в дальнейшем.

Когда в коде мы обрабатывали какую-то бизнес логику, мы выкидывали исключение, таким кодом

throw new Except('Error message');

это приводило к тому, что на экране выводилась подобная запись 

вывод ошибок в Ideal фреймворк до версии 1.0.2

Fatal error: Uncaught exception 'Except' with message 'File Z:\home\analize\ideal/application/views/page/pages/B2.php not found' in Z:\home\analize\ideal\ideal\classes\Controller.php:29 Stack trace: #0 Z:\home\analize\ideal\ideal\classes\Controller.php(43): Controller->_renderPartial('Z:\home\analize...', Array, true) #1 Z:\home\analize\ideal\application\views\page\read.php(2): Controller->renderPartial('pages/B2') #2 Z:\home\analize\ideal\ideal\classes\Controller.php(26): include('Z:\home\analize...') #3 Z:\home\analize\ideal\ideal\classes\Controller.php(43): Controller->_renderPartial('Z:\home\analize...', Array, true) #4 Z:\home\analize\ideal\ideal\classes\Controller.php(53): Controller->renderPartial('read', Array, true) #5 Z:\home\analize\ideal\application\controllers\PageController.php(4): Controller->render('read', Array) #6 [internal function]: PageController->actionRead('B2') #7 Z:\home\analize\ideal\ideal\classes\Controller.php(7): call_user_func_array(Array, Array) #8 Z:\home\analize\ideal\ideal\classes\App.php in Z:\home\analize\ideal\ideal\classes\Controller.php on line 29

Это встроенный обработчик ошибок php, вывел для нас эту исчерпывающую информацию. Здесь есть все что нам потребуется для того, чтобы выяснить, что же произошло: само сообщение, стек вызова функций с файлами и методами. Мы видим даже параметры, которые поданы в тех или методах стека. Все что нужно есть, но выводится это не очень красиво.

Для того, чтобы сделать это более удобоваримым, нам потребуется установить обработчик исключений, через метод set_exception_handler. Мы обрабатываем не только исключения, но и ошибки php (все, кроме fatal), поэтому установим еще обработчик set_error_handler.

Рассказать друзьям
Подробнее... 15 комментариев

Как написать свой фреймворк на php. Модель. Урок 5

Подробности
Категория: PHP
Опубликовано: 23 марта 2015
Просмотров: 11502
  • php
  • фреймворк
  • vanila.php
  • ideal
  • разработка фреймворка

Эта статья будет иметь более прикладной смысл, чем предыдущие. Мы создадим класс модели, который вы в принципе сможете использовать в своих проектах

Для начала переименуем класс Model в ideal/classes/Model.php в Registry и файл назовем также ideal/classes/Registry.php При разработке можете скидывать на этот класс все, что связано с настройками, с запросами, и т.п.

В местах его использования также все переименуем

<?php
class Registry{
	private $data = array();
	function __construct($data = array()) {
		$this->data = $data;
	}
	function __get($name){
		return isset($this->data[$name])?$this->data[$name]:null;
	}
	function __set($name,$value){
		$this->data[$name] = $value;
	}
}

в App.php

$this->config = new Registry(array_merge($default_config, $custom_config));
//...
$this->uri = new Registry(Router::gi()->parse($_SERVER['REQUEST_URI']));

и в application/models/user.php

class User extends Registry{

Теперь ничего нам не мешает создать новый класс ideal/classes/Model.php

<?php
class Model{
	private $_data = null;
	function __construct() {
		$this->_data = new stdClass();
	}
	function __set($name, $value) {
		$this->_data->$name = $value;
	}
	function __get($name) {
		return property_exists($this->_data, $name) ? $this->_data->$name : null;
	}
}

отличие от Registry пока лишь в том, что мы используем объект место ассоциативного массива.

Теперь при обращении к полю экземпляра такой модели

$model = new Model();
$model->id = 5;

вызывается магический метод __set и внутреннему объекту $data в поле $id записывается нужное значение.

Зачем это делать? - спросите вы

Рассказать друзьям
Подробнее... 55 комментариев

PHP находка

Подробности
Категория: PHP
Опубликовано: 27 июля 2015
Просмотров: 3505

Если Вы, как и я много программируете в php, то я уверен Вас эта находка весьма займет.

Как мы обычно делаем, если надо реализовать такую логику:

if ($a) {
 $b = $a;
} else {
 $b = $c;
}

чтобы не плодить if-else блоков, мы делаем так

$b = $a ? $a : $c;

Где-то я читал что подобная конструкция не читабельна, но она очень удобна. Я так и пишу, смущает разве повторение оператора $a. Если это переменная то черт с ней, но если это какой-то метод или функция, то получается два вывода. Что совсем не гуд.

В JS есть удобная конструкция на этот случай

var b = a || c;

Если a отлично от false, то в b будет записано оно, если нет то с. В php такое не сработает. Там в $b запишется результат логического сравнения.

Но оказывается в PHP есть аналогичная конструкция

$b = $a ?: $c;

Та дааам! Получите и распишитесь. Кто бы знал.

Рассказать друзьям
Добавить комментарий

Страница 66 из 66

  • В начало
  • Назад
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • ...
  • 65
  • 66

Полезные статьи

  • Joomla сниппеты
  • Joomla ZOO сниппеты
  • PHP сниппеты
  • Yii сниппеты
  • SSH сниппеты и защита сайта
  • CSS сниппеты
  • JavaScript сниппеты

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

  • Учимся парсить сайты с библиотекой PHP Simple HTML DOM Parser 2011-03-18 12:33:20

  • Примеры работы с ajax на jQuery 2011-03-01 21:04:00

  • Как написать универсальный парсер сайтов за 1 час 2014-04-25 09:36:58

  • Работа с файлами в JavaScript, Часть 1: Основы 2012-06-25 22:02:14

  • Авторизация на сайте при помощи curl php 2012-07-19 02:33:00

Авторизация через сервисы

         

  • Забыли пароль?
  • Забыли логин?
  • Регистрация

Категории

  • JavaScript
  • PHP
  • Новости Web технологий
  • Soft
  • Парсеры
  • CMS
  • Социальные сети
  • Из жизни
  • Политика
  • Мои разработки
  • Новости сайта
  • SEO
  • Защита сайта
  • Администрирование WEB сервера
  • Монетизация сайта
  • web разработка
  • Железо
  • Хостинг
  • Игры
  • Про кино
  • Нативное программирование
  • Видео

Последние комментарии

  • Если у вас ломаются компьютеры в офисе

    카지노사이트 카지노사이트 14.12.2019 01:57
    Fifty-two percent chose cash, while 34 p.c opted for gift playing cards and 14 p.c went with one other ...

    Подробнее...

     
  • Ремонт MACBOOK PRO RETINA, AIR в Москве

    Екатерина_12334 Екатерина_12334 13.12.2019 16:34
    wepro - отличный сервис! от души вам их советую. обращалась, и не раз.

    Подробнее...

     
  • Документация компонента Яндекс Карты для Joomla

    mago mago 09.12.2019 16:26
    1. После добавления новой организации при пересохранении объекта в админке пропадает фото ...

    Подробнее...

     
  • Системные требования для Marvel Heroes 2015

    vangler vangler 08.12.2019 19:53
    молодецю инфо бьло зорошое

    Подробнее...

     
  • Документация компонента Яндекс Карты для Joomla

    Алексей82 Алексей82 08.12.2019 15:09
    Добрый день, хочу преобрести лицензию,сайт будет разробатоваться на моём домене.... возможно ли потом ...

    Подробнее...

     
  • Joomla - как отключить mootools

    Евгений1983 Евгений1983 05.12.2019 19:06
    Огромнейшее спасибо за данную статью, всё работает отлично, на сайте скрипты Mootools не грузятся, в ...

    Подробнее...

     
  • Max7 Max7 29.11.2019 17:25
    По моему он вообще не отвечает

    Подробнее...

     
  • german german 29.11.2019 15:20
    Может кто-то ответить, как связаться с этим Валерием? Если он не отвечает нигде!

    Подробнее...

     
  • Основные способы интернет-продвижения

    zoooper zoooper 27.11.2019 18:59
    24vulcan-club.com/kartochnye Играй. и выигрывай

    Подробнее...

     
  • german german 27.11.2019 15:40
    Здравствуйте. Как долго вы отвечаете на свою почту?

    Подробнее...

© 2019 Все о web разработке на xdan.ru

  • О сайте
  • Об авторе
Go Top