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 :: данные, полученные через ajax

 PHP.SU

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


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

> Без описания
Pavelbeginner
Отправлено: 19 Апреля, 2012 - 09:15:26
Post Id



Частый посетитель


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


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




От сервера пришли html данные.
1. Внутри этих данных есть скрипты, внутри которых находится $(document).ready(...); Отработает ли ready также, как-будто это не ajax-данные, которые вставляются в dom, а обычная html страница? То есть будет ли вызвана ф-ция, передаваемая в ready, после того, как весь html вставлен в dom?
2. Если внутри этих данных есть стили, то они применятся или уже будут игнорироваться? И будет ли отменено действие стилей, если потом удалить из dom этот html?
Спасибо.
 
 Top
DeepVarvar Супермодератор
Отправлено: 19 Апреля, 2012 - 10:07:29
Post Id



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


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


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




1) Зависит от того что в этом скрипте находится. Вобщем работает не все и не всегда. Подробности станем разбирать если дадите конкретный пример.
2) Применятся, и лучше вставлять их в DOM последовательно (относительно др. др.) чтобы не было проблем с порядком присвавания стилевых описаний к элементам на странице.
 
 Top
Viper
Отправлено: 19 Апреля, 2012 - 10:24:05
Post Id



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


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


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




1. Дык document.ready подразумевает родительский документ. То что приезжает в ответе и потом вставляется на страницу уже не попадает под ready, т.к. документ уже готов.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Pavelbeginner
Отправлено: 19 Апреля, 2012 - 11:42:24
Post Id



Частый посетитель


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


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




Viper пишет:
1. Дык document.ready подразумевает родительский документ. То что приезжает в ответе и потом вставляется на страницу уже не попадает под ready, т.к. документ уже готов.

А как тогда быть с пришедшими данными? Какая альтернатива document.ready есть?
(Добавление)
DeepVarvar пишет:
2) Применятся, и лучше вставлять их в DOM последовательно (относительно др. др.) чтобы не было проблем с порядком присвавания стилевых описаний к элементам на странице.

а при удаление этого html действие стилей, которые были в этом html отменятся?
 
 Top
DeepVarvar Супермодератор
Отправлено: 19 Апреля, 2012 - 12:04:19
Post Id



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


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


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




Нет, не отменяется, нужно переопределять. Кроме того для кроссбраузерности (ослокостыли) лучше использовать (с помощью js) добавление и удаление классов к элементу с заранее готовыми описаниями стилей.
Благо классов можно задать несколько одновременно:
CODE (html):
скопировать код в буфер обмена
  1. <style type="text/css">
  2.   .message {
  3.     padding: 10px;
  4.   }
  5.   .info {
  6.     background: #00f;
  7.   }
  8.   .error {
  9.     background: #f00;
  10.   }
  11. </style>
  12. <div class="message info">Привет</div>
  13. <div class="message error">Пока</div>
 
 Top
Pavelbeginner
Отправлено: 19 Апреля, 2012 - 12:24:00
Post Id



Частый посетитель


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


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




DeepVarvar пишет:
Нет, не отменяется, нужно переопределять.
я фаербагом удалял html, содержащий стили, и их действие отменялось. Это только фаербаг так делает, а на деле не отменяется получается?
 
 Top
DeepVarvar Супермодератор
Отправлено: 19 Апреля, 2012 - 12:51:57
Post Id



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


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


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




Pavelbeginner пишет:
я фаербагом удалял html, содержащий стили, и их действие отменялось.

А вот так они удаляются без фаербага, проверьте отменяется ли их действие:
CODE (javascript):
скопировать код в буфер обмена
  1. var elems = document.getElementsByTagName("style");
  2. if (elems != null) {
  3.   for (var i in elems) {
  4.     elems[i].parentNode.removeChild(elems[i]);
  5.   }
  6. }

(Добавление)
Если что у меня FF 3.5
 
 Top
IllusionMH
Отправлено: 19 Апреля, 2012 - 14:23:05
Post Id



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


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


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




DeepVarvar, не знаю как в FF 3.5, но последние стабильные и тестовые Opera, FF, Chrome, IE отменяю действие стиля.
Тут тот же прикол что и с добавлением стиля(да и любым изменением DOM) дерево пересчитывается по-новой, по новому применяются стили.


Или я сонный не понял смысла последнего сообщения?
 
 Top
DeepVarvar Супермодератор
Отправлено: 19 Апреля, 2012 - 14:58:19
Post Id



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


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


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




Кажется я не прав со стилями.

Однако это не отменяет того что все эти действия нафиг не сдались.
Гораздо правильнее прислать в ответе сервера чистый JSON и обработать его как нужно на клиенте.
Не вставляя какие-то теги стилей в DOM, а добавляя/удаляя классы элементам.
Так все CSS-оформление будет лежать в одном статическом readonly-файле который будет отдавать сервер,
а браузер кешировать, тогда пхп не будет генерировать всякую лабуду из хтмл-какашек.
Код станет чище и действий будет мньше.

Я все сказал Радость
 
 Top
Pavelbeginner
Отправлено: 19 Апреля, 2012 - 15:15:18
Post Id



Частый посетитель


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


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




DeepVarvar пишет:
Однако это не отменяет того что все эти действия нафиг не сдались.
Гораздо правильнее прислать в ответе сервера чистый JSON и обработать его как нужно на клиенте.
Не вставляя какие-то теги стилей в DOM, а добавляя/удаляя классы элементам.
Так все CSS-оформление будет лежать в одном статическом readonly-файле который будет отдавать сервер,
а браузер кешировать, тогда пхп не будет генерировать всякую лабуду из хтмл-какашек.
Код станет чище и действий будет мньше.

Я все сказал Радость

Ну у меня на всех страницах логотип имеет высоту 100px и лишь на главной высота должна быть 150px. Мне проще присылать через аякс в данных стиль переопределяющий высоту логотипа для этой единственной страницы, нежели с json-ом возиться и лишние действия делать.
 
 Top
DeepVarvar Супермодератор
Отправлено: 19 Апреля, 2012 - 15:24:01
Post Id



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


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


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




Дааа? А мне проще прислать название стиля и вставить его в логотип.
В моем случае 4-5 символов против ваших 30-100...
Кроме того работа с JSON совсем не выглядит возней, это действительно удобно.
Сами же и придете к этому выводу позднее.
 
 Top
armancho7777777 Супермодератор
Отправлено: 19 Апреля, 2012 - 15:26:53
Post Id



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


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


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




DeepVarvar пишет:
Кроме того работа с JSON совсем не выглядит возней, это действительно удобно.
Сами же и придете к этому выводу позднее.

Согласен.
 
 Top
IllusionMH
Отправлено: 19 Апреля, 2012 - 15:48:37
Post Id



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


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


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




Pavelbeginner пишет:
Ну у меня на всех страницах логотип имеет высоту 100px и лишь на главной высота должна быть 150px. Мне проще присылать через аякс в данных стиль переопределяющий высоту логотипа для этой единственной страницы, нежели с json-ом возиться и лишние действия делать.

AJAX - you're doing it wrong

На главной добавить класс для какого-нить элемента(к примеру обертки для центровки) или еще куча вариантов как на главной странице в CSS прописать размер логотипа.

(Отредактировано автором: 19 Апреля, 2012 - 15:56:49)

 
 Top
Pavelbeginner
Отправлено: 20 Апреля, 2012 - 08:43:20
Post Id



Частый посетитель


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


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




IllusionMH пишет:
На главной добавить класс для какого-нить элемента(к примеру обертки для центровки) или еще куча вариантов как на главной странице в CSS прописать размер логотипа.

не куча. Логотип находится в неменяемой ajax-ом части. Он находится в шапке сайта, а шапка не меняется.
 
 Top
DelphinPRO
Отправлено: 20 Апреля, 2012 - 08:47:47
Post Id



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


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


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




на главной странице добавляйте класс прямо в <body>
и переопределяйте высоту лого в стилях

CODE (css):
скопировать код в буфер обмена
  1. .logo {height: 100px;}
  2. .frontpage .logo {height:150px;}


-----
Чем больше узнаю, тем больше я не знаю.
 
 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