Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: какими методами пользоваться? [3]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (6): « 1 2 [3] 4 5 6 »   

> Описание: какими методами пользоваться?
tuareg
Отправлено: 10 Декабря, 2011 - 20:24:31
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Ладно давайте оставим эту тему, она по-моему бесперспективна. Улыбка Приятного вечера
 
 Top
3d_killer
Отправлено: 11 Декабря, 2011 - 03:21:28
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




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

CODE (javascript):
скопировать код в буфер обмена
  1. $('.Bottom.Delete').live('click', function()
  2.                         {$('.max-div').css('display', 'block');
  3.                                 id=$(this).parents('td.razdel').data('id');
  4.                                 $.get("blocks/position.php", { table: menu_id, action:"delete", id:id})
  5.                                 .complete(function()
  6.                                         {
  7.                                                 $.get("blocks/table.php", { table: menu_id},
  8.                                         function(data)
  9.                                                 {
  10.                                                         $('.data').html(data);
  11.                                                         $('.max-div').css('display', 'none');
  12.                                                 });
  13.                                         });            
  14.                         });

(Добавление)
да и по поводу индексации не работает она на ajax, для админки самое то но для сайта помоему не очень хороший вариант пихать ajax
 
My status
 Top
caballero
Отправлено: 11 Декабря, 2011 - 03:35:27
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Вообще то если речь идет об админке то там будет работать не случайный юзер с инета и пинать тупо ничего не должен. Да и индексация поисковиками не нужна (обственн о ьуда они и не попадкт без пароля).
С другой стороны и скорость работы там не критична на админке.
Тем более что все современные браузеры поддерживают gzip сжатие контента. То есть никакого выиграша по скорости аякс не даст На сервере для аякса все рано надо подымать PHP на каждый вызов причем вместо одного раза на все страницу, трафик (на случай много текста) прекрасно сжимается gzip. Картинки и так грузятся асинхронно.
То есть преимуществ по сути никаких.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
3d_killer
Отправлено: 11 Декабря, 2011 - 03:42:08
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




и сам ксс для дива

PHP:
скопировать код в буфер обмена
  1.     width: 100%;
  2.             height: 100%;
  3.             top: 0;
  4.             left: 0;
  5.             position:fixed;
  6.             right:0; bottom:0;
  7.             background:#9A9292;
  8.             display:none;
  9.             z-index: 100;
  10.             opacity:0.5;

(Добавление)
caballero не согласен по поводу пинания кнопок так как если юзер не достаточно умен а позиций много, то на обработку потребуется время не увидев результата пользователь нажмет еще раз кнопку...
 
My status
 Top
tuareg
Отправлено: 11 Декабря, 2011 - 11:12:30
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




На счет индексации, это все глупости. HTML 5 history API и все проиндексируется.
Теперь на счет всего остального.
Простой пример.
Надо сделать страницу не видимой.
Вариант PHP(полная перезагрузка) этапы
1 Отправляем запрос GET
2 Выполняем запрос MySQL на скрытие
3 Выполняем запрос на вывод всех страницы из MySQL (причем тут уже нет КЭША ни MySQL
удален при UPDATE ни html страницы(т.к она изменилась), максимум закэшированы картинки)
4 Формируем всю страницу и выводим ее + снова инициализирем все плагины и т.д что повешано на страницу это тоже время
Правильно??? Если я что-то не правильно указал Вы поправьте меня
Вариант jQuery+Ajax+PHP
1 Определяем id элемента, который надо скрыть
2 Отправляем запрос GETJSON
3 Выполняем запрос MySQL на скрытие и отправляем флаг о рез-те
4 Меняем класс у картинки.(одна строчка кода 2 команды addClass().removeClass())
Все... Улыбка
Сами подумайте будет ли тут выигрыш в скорости.
(Добавление)
P.S У Google есть рекомендации как сделать так, чтобы сайт использующий ajax нормально проиндексировался.

(Отредактировано автором: 11 Декабря, 2011 - 11:15:04)

 
 Top
caballero
Отправлено: 11 Декабря, 2011 - 11:46:23
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Ну если привести спеуиально подобранный пример тогда конечно.
Какой процент составляют страницы где надо скрыть один элемент да еще и в БД запомнить.
А если не один элемент а 5 разнызх и 5 запросов к серверу?
а если на странице нет никих плагинов и она обновится быстро?
А если страница принадлежит к 99.99999% у которых нет функционала по сокрытию одного элемента и прописыванием его в БД?

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

3d_killer
Вообще то у аякса там параметр где то есть - блокировать браузер - зачем мучатся с дивами.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
tuareg
Отправлено: 11 Декабря, 2011 - 12:05:27
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




caballero пишет:
Ну если привести спеуиально подобранный пример тогда конечно.
Какой процент составляют страницы где надо скрыть один элемент да еще и в БД запомнить.
А если не один элемент а 5 разнызх и 5 запросов к серверу?

Вся админка это скрыть, переместить и т.д все действия для одного элемента в основном.
$('#id1,#id2,#id3,#id4,#id5').... Для 5 элементов Улыбка
5 запросов это как-то не очень правильно. Ну уж если совсем необходимо процедуры MySQL
caballero пишет:

Вообще то у аякса там параметр где то есть - блокировать браузер - зачем мучатся с дивами.

Вот этого делать не стоит. Паника у User-a начнется. Браузер просто зависнет и все.
 
 Top
caballero
Отправлено: 11 Декабря, 2011 - 14:14:53
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Вся админка это скрыть, переместить и т.д все действия для одного элемента в основном.

Вообще то в админке важно именно работа с данными которые в БД причем работа надежная без сюрпризов. Реализация интерфейса - вторична. В отличие от например развлекательных сайтов где важно вовремя показать картинку с сиськами Ани Семенович.
Кроме того есть еще один важный момент когда реальный проект и ограниченные время и сроки - трудоемкость.

Гораздо проще принять переменную с $_REQUEST , проапдейтить базу и показать/непоказать елемент с помощью старого доброго if else - несколько строк делов, чем писать файл для ответа аяксу писать сами аякс вызовы и обработчики событий потом запаковать распаковать ответ потом писать обновление елемента ползая по DOM модели, следить чтобы юзер там не тыкал чего пока запрос идет и т.д.
А страницу оптимизировать для скорости. Тем более сам аякс оаботает далеко не мгновенно - почему и вешают всегда всякие крутилки.

Цитата:
Вот этого делать не стоит. Паника у User-a начнется. Браузер просто зависнет и все.

А заблокировать дивом чем лучше. Хотя я сам синхронные вызовы как то ни разу не пользовал -какой смысл использовать аякс без асинхронки.

(Отредактировано автором: 11 Декабря, 2011 - 14:15:34)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
tuareg
Отправлено: 11 Декабря, 2011 - 14:39:22
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Вам не кажется, что Вы сами себе противоречите? Улыбка
caballero пишет:
Вообще то в админке важно именно работа с данными которые в БД причем работа надежная без сюрпризов.

caballero пишет:
Конечно в таких специфических случах я сам использую аякс. Но речь то шла о перепиливвании админки. То есть технической страницы где нет необходимости вешать какие то прибамбасы.

caballero пишет:

Гораздо проще принять переменную с $_REQUEST , проапдейтить базу и показать/непоказать елемент с помощью старого доброго if else - несколько строк делов, чем писать файл для ответа аяксу писать сами аякс вызовы и обработчики событий потом запаковать распаковать ответ потом писать обновление елемента ползая по DOM модели, следить чтобы юзер там не тыкал чего пока запрос идет и т.д.

Какая разница в реализации...
Я же написал логику с PHP и jQuery там все до момента отдачи рез-та одинаково.
А после первого запроса идут проверки
Запрос удачный
jQuery: возвращаем флаг 1(true) не важно. Нужно только конвертнуть в Json(в ручную сформировать)
PHP: Делаем запрос в БД, по новой создаем страницу и т.д
Не удачный(ошибка)
jQuery: возвращаем флаг 0 (Выводим сообщение об ошибке)
PHP: Выводим сообщение об ошибке
При jQuery ползать по дому не страшно(да и просто все-таки движок свой они постоянно улучшают оптимизируют), при смене класса(вообще не надо $(this)).
В других случаях это тоже абсолютно не критично
caballero пишет:

А заблокировать дивом чем лучше. Хотя я сам синхронные вызовы как то ни разу не пользовал -какой смысл использовать аякс без асинхронки.

Просто показываем пользователю, что идет процесс обработки рез-та. Див перекрыл всю страничку, по середине какая-нибудь gif-ка. Все красиво.


P.S Я просто как бы к чему так спорю. Очень глупо загружать целую библиотеку ради одной функции. Если уж решили ей воспользоваться, то пользоваться нужно по максиму.(Сложно да ни сколько. Есть много ресурсов и инфы.)
(Добавление)
3d_killer пишет:
по поводу пинания кнопок как раз столкнулся, нашел решение дивом закрывать все это дело типо так

За диспутом не заметил... Улыбка Все гораздо проще
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('#idDiva').ajaxStart(function(){
  3.         this.style.display='block';
  4. }).ajaxStop(function(){
  5.       this.style.display='';
  6. });
  7.  

Все теперь при всех запросах ajax div показывается.
Отключить для конкретного запроса
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $.ajax({
  3.  ....
  4.  global:false
  5. .....
  6. })
  7.  
 
 Top
caballero
Отправлено: 11 Декабря, 2011 - 14:59:24
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Делаем запрос в БД, по новой создаем страницу и т.д
Не удачный(ошибка)

такого вообще не должно быть - это неоттестированый проект с багами. Тут уж без разницы аякс или нет.

Цитата:
Очень глупо загружать целую библиотеку ради одной функции. Если уж решили ей воспользоваться, то пользоваться нужно по максиму

как по мне глупо использовать библиотеку потому что ты ее згрузил - типа чтобы добро не пропало. Тем более браузер яваскрипты кеширует. Или используй функцию без библиотеки. Один аякс запрос можно написать и руками без всяких jquery.

Цитата:
Сложно да ни сколько. Есть много ресурсов и инфы.

Никто не говорит что сильно сложно. Я говорю что более трудоемко - много букаф. И на отладку больше времени.
Для себя поигратся можно - а когда жесткий тайлайм в проекте только камикадзе станет писать вместо отрабюотаной технологии аяксовкие прибамбасы если заказчик конкретно на это не соглдасился и не выделил время и деньги.
(Добавление)
Цитата:
Все теперь при всех запросах ajax div показывается.

А кто уберет твой div если яваскрипт глюкнет (обычное дело) и событие не сработает


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
tuareg
Отправлено: 11 Декабря, 2011 - 15:08:04
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




caballero пишет:

такого вообще не должно быть - это неоттестированый проект с багами. Тут уж без разницы аякс или нет.

Т.е если в момент запроса упал сервер БД, еще что-то у Вас это ни как не проверяется???
Ага а логи ошибок пишут для чего интересно????
caballero пишет:
А кто уберет твой div если яваскрипт глюкнет (обычное дело) и событие не сработает

С чего он должен глюкнуть-то. Потому что кто-то плохо написал. Улыбка
P.S В настройках $.ajax есть параметр timeout(по моему так), он за это отвечает.
Крайний вариант F5
 
 Top
caballero
Отправлено: 11 Декабря, 2011 - 15:14:59
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Т.е если в момент запроса упал сервер БД, еще что-то у Вас это ни как не проверяется???

Но нормальном хостинге это редкость. Кроме того если упал сервер проверять что либо уже быссмысленно и в большинстве случаев уже нечем.


Цитата:
С чего он должен глюкнуть-то. Потому что кто-то плохо написал.

Потому что ктото плохо написал ява скриптовый движок или браузер. Ява скриптовые ошибки или зависания - обычное дело.

(Отредактировано автором: 11 Декабря, 2011 - 15:15:41)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
tuareg
Отправлено: 11 Декабря, 2011 - 15:21:23
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




caballero пишет:

Но нормальном хостинге это редкость. Кроме того если упал сервер проверять что либо уже быссмысленно и в большинстве случаев уже нечем.

Раз в год и палка стреляет. А если упала БД, а не сервер, что тогда будет? User будет что делать???
caballero пишет:

Потому что кто-то плохо написал ява скриптовый движок или браузер. Ява скриптовые ошибки или зависания - обычное дело.

Для этого есть отладчики. Причем во всех браузерах, только с разным функционалом.
 
 Top
caballero
Отправлено: 11 Декабря, 2011 - 15:38:31
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Раз в год и палка стреляет. А если упала БД, а не сервер, что тогда будет? User будет что делать???

А что аякс как то поможет поднять БД?

Цитата:
Для этого есть отладчики. Причем во всех браузерах, только с разным функционалом.

Разумеется только без аякса этот вопрос вообще отпадает. А значит время а и меньший риск просрочить проект а значит деньги. Я так понимаю в серьезном реальном проекте вы не участвовали что нуждаетесь в таких прописных истинах.

Понимаете в чем разница для админок и прочих ответственных страниц. Загрузка страницы целиком это как транзакция в БД. Либо загрузилась либо вывалилась ошибка. С асинхронкой юзер на странице может видеть одно (инфа то висит не перегружается) а на бакенде уже совсем другое. при обычной загрузке страницы - рассинхронизация данных невозможна.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
tuareg
Отправлено: 11 Декабря, 2011 - 15:49:39
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




caballero пишет:

А что аякс как то поможет поднять БД?

Ему ничего поднять не надо ему надо вернуть результат запроса. Выполнился или нет.
caballero пишет:

Понимаете в чем разница для админок и прочих ответственных страниц. Загрузка страницы целиком это как транзакция в БД. Либо загрузилась либо вывалилась ошибка. С асинхронкой юзер на странице может видеть одно (инфа то висит не перегружается) а на бакенде уже совсем другое. при обычной загрузке страницы - рассинхронизация данных невозможна.

Тут все тоже самое. Я не знаю как вы это делаете, обычно если нужен рез-т ответа, а это как транзакция в БД. То делается callback функция, которая и проверяет ответ сервера, если он + то одно(типа сохранено и т.д) если - произошла ошибка
А чтобы user видел что программа что-то делает до получения ответа и вешается картинка типа обрабатываем рез-т. Пока она работает, он ничего не делает не сможет делать.
 
 Top
Страниц (6): « 1 2 [3] 4 5 6 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB