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 :: Функция live, помогите разобраться

 PHP.SU

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


 Страниц (2): [1] 2 »   

> Без описания
Korsand
Отправлено: 20 Апреля, 2013 - 03:36:48
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2013  
Откуда: UA Donbass


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




Привет. Не могу разобраться с live. Делаю автообновление сообщений на странице через auto_refresh. На данный момент, у меня вот такой код:
Рабочий код, но без LIVE (Отобразить)

Но нужно сделать через live. Пытаюсь сделать так... но нифига не работает. К тому же, пытаюсь сделать плавный выезд через slideDown - тоже не получается.
Нерабочий код (Отобразить)

Пожалуйста, помогите исправить. Заранее благодарен за помощь.
 
 Top
LIME
Отправлено: 20 Апреля, 2013 - 04:07:41
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




Korsand а что по твоему делает live ?
http://jquery-docs[dot]ru/events/live/
 
 Top
esterio
Отправлено: 20 Апреля, 2013 - 08:34:26
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




версия jquery?
в 1.8 помечена как устарела
в 1.9 удалена
 
 Top
armancho7777777 Супермодератор
Отправлено: 20 Апреля, 2013 - 10:40:35
Post Id



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


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


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




esterio, Вы лучше код посмотрите ...
Пока что не ясно, зачем именно нужен данный метод ТС )
 
 Top
esterio
Отправлено: 20 Апреля, 2013 - 11:17:49
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




сидел с телефона код не смотрел. Но удмаю даная информация не помешает
 
 Top
Korsand
Отправлено: 20 Апреля, 2013 - 17:22:33
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2013  
Откуда: UA Donbass


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




esterio, версия jquery у меня 1.5.2. Использую эту версию, потому что имеется у меня на странице (на главной, в которую всё это будет потом влепленно) один скрипт, а он не работает с более современными версиями библиотек. Я бы не прочь модернизировать этот скрипт, но для меня эта задача не под силу, в связи со скудными познаниями js.

Задача такая. Сделать автообновление (появление) вновь поступивших сообщений. Вот мой код:
index.php (Отобразить)

apdate_msg.php (Отобразить)

armancho7777777, косяк вот в чём: js скрипт авторефреша не берёт во внимание id вновь подгруженных сообщений на странице, а отталкивается только от тех, что были загружены при первом открытие страницы (это я так думаю). И поэтому, получается так, что первое вновь поступившее сообщение в базу, js вытаскивает и показывает один раз – как и положено. А если поступает следующее (второе) новое сообщение в базу, то js вытаскивает и отображает его уже до бесконечности – это фигово. И такой косяк со всеми последующими новыми сообщениями. Поэтому, я и решил, что бы js брал во внимание все id сообщений на странице, как старых так и вновь подгруженных – нужно использовать live. Возможно косяк в чём-то другом, но я не знаю в чём и как его исправить! Растерялся

ПС. LIME, я так понял, что live с аврорефрешем не стыкуется, да?




Обновленннннно
Ааа, до меня допёрло!!! Можно обойтись и без live. Только правильно нужно выводить сообщения на страницу.
Получается, что этот js скрипт выдёргивает id_msg из самого верхнего сообщения. Т.е. если последнее полученное сообщение будет выводиться всегда впереди (сверху) остальных старых сообщений, то всё будет гуд.

На данный момент, с моим кодом, который я привёл чуть выше, сообщения выводятся на страницу в таком порядке:

    Вновь поступившее сообщение (выведено через скрипт автообновления) №4
    Вновь поступившее сообщение (выведено через скрипт автообновления) №5
    Вновь поступившее сообщение (выведено через скрипт автообновления) №6
    ......
    Старое сообщение (выведено при загрузке страницы) №3
    Старое сообщение (выведено при загрузке страницы) №2
    Старое сообщение (выведено при загрузке страницы) №1


А надо вот так:
    Вновь поступившее сообщение (выведено через скрипт автообновления) №6
    Вновь поступившее сообщение (выведено через скрипт автообновления) №5
    Вновь поступившее сообщение (выведено через скрипт автообновления) №4
    ......
    Старое сообщение (выведено при загрузке страницы) №3
    Старое сообщение (выведено при загрузке страницы) №2
    Старое сообщение (выведено при загрузке страницы) №1


Вот как это сделать, а? Однако

(Отредактировано автором: 20 Апреля, 2013 - 18:39:40)

 
 Top
DeepVarvar Супермодератор
Отправлено: 20 Апреля, 2013 - 20:13:08
Post Id



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


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


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




CODE (javascript):
скопировать код в буфер обмена
  1. $('#new_msg').prepend( ...
 
 Top
Korsand
Отправлено: 20 Апреля, 2013 - 20:23:50
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2013  
Откуда: UA Donbass


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




DeepVarvar, ага, ставил препенд - эффекта не дало. Но возможно я не исправил какие-то косяки, а препенд уже влепил... Хотя, надо ещё раз попробовать.

Update
Даааа, работает, спасибо!!!
И спасибо, за то что ткнули носом в live, что тут он действительно нах не нужен!

(Отредактировано автором: 20 Апреля, 2013 - 20:30:21)

 
 Top
DeepVarvar Супермодератор
Отправлено: 20 Апреля, 2013 - 21:26:06
Post Id



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


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


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




CODE (javascript):
скопировать код в буфер обмена
  1.     ....
  2.                     success: function(html){
  3.                        
  4.                         $('#new_msg').prepend(html, function () {
  5.                             $(this).slideDown('slow');
  6.                         });
  7.                     }
  8.     ....
Надо скрыть (slideUp(0)) html и открыть (slideDown('slow')) html, а не #new_msg.
Потому, что ты добавляешь в #new_msg и он растягивается в высоту.
Нет смысла его "слайдить".
(Добавление)
Слушай, не парься, а, возьми этот.
Староват, по мне так уже не красив, но покопаться тебе хватит.
 
 Top
Korsand
Отправлено: 20 Апреля, 2013 - 21:37:37
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2013  
Откуда: UA Donbass


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




DeepVarvar пишет:
Потому, что ты добавляешь в #new_msg и он растягивается в высоту.
да, действительно, понял. А вот куда вставить slideUp и Down - я не понял Однако

DeepVarvar пишет:
Слушай, не парься, а, возьми этот.

Ого, да это ж целый чат. Мне ж всего-то надо одна-десятая от этого всего. Но спасибо, покопаюсь.
 
 Top
DeepVarvar Супермодератор
Отправлено: 20 Апреля, 2013 - 22:10:36
Post Id



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


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


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




Korsand пишет:
А вот куда вставить slideUp и Down - я не понял
В добавляемое сообщение.
Но в твоем примере это не выйдет, или выйдет, но через одно место.
 
 Top
Korsand
Отправлено: 20 Апреля, 2013 - 22:13:53
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2013  
Откуда: UA Donbass


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




А если через это "одно место" - совсем-совсем коряво будет?
 
 Top
DeepVarvar Супермодератор
Отправлено: 20 Апреля, 2013 - 23:00:36
Post Id



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


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


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




Да, совсем коряво.
Что из себя представляет одно сообщение (верстка)?
 
 Top
Korsand
Отправлено: 21 Апреля, 2013 - 00:18:09
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2013  
Откуда: UA Donbass


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




Ну, если брать не тот укороченный (пилотный) пример, над которым я экспериментирую и указываю тут в теме. А брать тот, который будет в конечном варианте (на готовой странице). То вот:
CODE (html):
скопировать код в буфер обмена
  1. <ul class="message_list">
  2.                
  3.   <div id="poloska_vertikal"></div>
  4.   <div id="circle_red_1"></div><div id="poloska_gorizont"></div><div id="circle_red_2"></div>
  5.                        
  6.   <div class="id_message" id_msg="<? echo $id_msg; ?>" ></div>
  7.                
  8.   <div class="info">
  9.     <div class="otpravitel"><? echo $from; ?></div>
  10.     <div class="location"><? echo $city; ?>&nbsp;&bull;&nbsp;<? echo $country; ?></div>
  11.     <div class="date"><? echo $proshlo_vremeni; ?></div>
  12.   </div>
  13.                        
  14.   <p><? echo $text; ?></p>
  15.                        
  16.   <div class="razdelitel"></div>
  17.                        
  18. </ul>

Я так понимаю, что чуть ли не весь этот код нужно влепить в js скрипт, да?
 
 Top
DeepVarvar Супермодератор
Отправлено: 21 Апреля, 2013 - 01:06:32
Post Id



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


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


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




Почему внутри ul нету li, и вместо них всякие div и p?
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 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