Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ajax + динамическая подгрузка javascript, проблема при подгрузке контента 
:(
    Опции темы
polosatij
  Дата 22.4.2007, 03:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8





работаю с ajax-ом.. получается проблема при подгрузке контента..  smile  кое-какой контент нуждается в большом яваскрипте находящимся в двух отдельный файлах.. 


посмотрел этот топик:

http://forum.vingrad.ru/topic-87742.html

1. вариант с "обворачивай в функцию и вызывай её." мне не подходит
2. попробовал грузить в .iframe, но почему-то яваскрипт не подгружается, если динамически менять .iframe
3. вариант: "либо клади во внешний файл и подгружай, как <script src="*"></script>".. а как можно подгрузить такое динамически, а не при первой загрузке страницы?

может быть есть ещё какие варианты?  smile 

eval() - не предлогать, в друх файлах более 1500 строк..  smile 


--------------------
PM   Вверх
skyboy
Дата 22.4.2007, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 10
Всего: 260



Цитата(polosatij @  22.4.2007,  02:46 Найти цитируемый пост)
а как можно подгрузить такое динамически, а не при первой загрузке страницы?

создать элемент <script>?
Код

var scri= document.createElement('script');
scri.type= 'text/javascript';
scri.src= " ";
document.getElementsByTagName('body')[0].appendChild(scri);
scri.src= "http://www.google.com/new_my_super_puper_script.js"; // по идее, именно в момент смены пути и будет происходить принудительное выполнение javascript'a


Добавлено через 2 минуты и 8 секунд
обрати ещё внимание вот ещё на двухдневной давности тему:

Добавлено через 8 минут и 43 секунды
Подгрузка и выполнение JavaScript
PM MAIL   Вверх
polosatij
Дата 22.4.2007, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8



skyboy

ещё не попробовал.. но о таком простом варианте, я что-то не подумал  smile 

скажи, 

1. а можно ли не только подгружать, но ещё и выгружать из памяти javascript?  smile 
2. есть ли в яваскрипт такой механизм как reflection?  smile 



--------------------
PM   Вверх
skyboy
Дата 22.4.2007, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 10
Всего: 260



Цитата(polosatij @  22.4.2007,  14:18 Найти цитируемый пост)
reflection

ООП в javascript'e, в отличии от Java и .NET(не знаю, откуда "пришел" вопрос про reflection), основывается не на иерархии классов, а на иерархии прототипов(prototype-based). Потому чтоб говорить о reflection, сначала уточни, ЧТО именно тебя интересует.
Например, получить доступ к методам/свойства по имени можно при помощи функции эвуляции eval() или при обращении к объектам, как к массивам(myobject[myproperty]= 555;).
Точно так же можно получить и перечисление:
Код

var obj= {};
obj.some= 15;
obj.method= function() {alert(15)};
for(a in obj) 
 alert('obj[' + a + ']=' + obj[a]);

Надеюсь, нигде не опечатался  smile 
Цитата(polosatij @  22.4.2007,  14:18 Найти цитируемый пост)
а можно ли не только подгружать, но ещё и выгружать из памяти javascript?

Не знаю. А зачем? Сам блок <script>, конечно, можно удалить из DOM-дерева, но не знаю, что будет с уже "привязанными" к событиям функциями...

Это сообщение отредактировал(а) skyboy - 23.4.2007, 00:21
PM MAIL   Вверх
Alx
Дата 22.4.2007, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



Цитата(skyboy @  22.4.2007,  17:21 Найти цитируемый пост)
Надеюсь, нигде не опечатался   

var obj = {};

 smile 


--------------------
PM MAIL WWW ICQ   Вверх
skyboy
Дата 22.4.2007, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 10
Всего: 260



Цитата(Alx @  22.4.2007,  17:49 Найти цитируемый пост)
var obj = {};

 smile Точно.
Или 
Код

var obj= new Object();

PM MAIL   Вверх
polosatij
Дата 22.4.2007, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8



Цитата(skyboy @  22.4.2007,  17:21 Найти цитируемый пост)
Потому чтоб говорить о reflection, сначала уточни, ЧТО именно тебя интересует.



очень часто при программировании в javascript возникает одна и та же проблема: "этот класс/ объект или что там ещё не содержит такой методы".. хотелось бы как-нибудь посмотреть, какие у класса, объекта методы/ функции в наличии  smile 


--------------------
PM   Вверх
skyboy
Дата 22.4.2007, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 10
Всего: 260



я ж написал smile
хотя, нет необходимости обращаться к объекту как к массиву(точнее - хеш-таблице), если цель - только узнать о наличии метода.
Например, вот такая конструкция
Код

if(!document.SOME_SUPER_FUNCTION)
 alert('Нету такого метода');

будучи выполненной в обозревателе выдаст сообщение об отсуствии метода. Т.е. другими словами, несуществующие методы и свойства в объекте == false.
PM MAIL   Вверх
polosatij
Дата 22.4.2007, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8



skyboy

ты меня не понял.. 

мне нужно все методы объекта, а не гадать, если ли метод у метода или нет, как это делаешь ты  smile 


--------------------
PM   Вверх
skyboy
Дата 22.4.2007, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 10
Всего: 260



Цитата(polosatij @  22.4.2007,  22:08 Найти цитируемый пост)
все методы объекта

и свойства тоже можно получить. И это я демонстрировал шестью постами выше при помощи конструкции типа for(... in ...)
А теперь может объяснишь, зачем тебе работа с полным списком методов? Может, ты ещё просто не почувствовал различия между prototype-based и class-based подходами?
PM MAIL   Вверх
polosatij
Дата 22.4.2007, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8



Цитата(skyboy @  22.4.2007,  17:21 Найти цитируемый пост)
Не знаю. А зачем? Сам блок <script>, конечно, можно удалить из DOM-дерева, но не знаю, что будет с уже "привязанными" к событиям функциями... 



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

Добавлено через 1 минуту и 59 секунд
Цитата(skyboy @  22.4.2007,  23:27 Найти цитируемый пост)
Может, ты ещё просто не почувствовал различия между prototype-based и class-based подходами?



не знаю.. возможно  smile 
у меня нет большого опыта с яваскриптом.. немного чего писал, но ещё не постиг все основы этого скриптового языка  smile  я больше из мира ява  smile 


--------------------
PM   Вверх
skyboy
Дата 22.4.2007, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 10
Всего: 260



так не швыряй кодом. швыряй данными. а код пусть будет один и тот же. тогда и обработка будет однообразная, и никакой коллизии имен. А чтоб страницу составить из блоков, совсем необязательно бросать лоскутное одеяло из javascript'ов smile
PM MAIL   Вверх
polosatij
Дата 22.4.2007, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8



Цитата(skyboy @  22.4.2007,  23:31 Найти цитируемый пост)
так не швыряй кодом. швыряй данными. а код пусть будет один и тот же. 



так не получиться, слишком много кода  smile 


Цитата(skyboy @  22.4.2007,  23:31 Найти цитируемый пост)
совсем необязательно бросать лоскутное одеяло из javascript'ов


хорошо.. а что ещё ты посоветуешь? 

смотри, здесь, скрееншот => http://www.immobaer.com/antrakt/1.jpg при нажатии слева на меню, в середину подружается "нечто"..  как бы ты поступил?  smile 



--------------------
PM   Вверх
skyboy
Дата 22.4.2007, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 10
Всего: 260



недокачал скрин. 1600х1200   smile Мой канал такого не потянет. Может, на пальцах объяснишь? Надо менять не только данные, но и интерфейс? Много "окноподобных" конструкций?
PM MAIL   Вверх
polosatij
Дата 22.4.2007, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8



skyboy
    
Код

var obj;
obj.some= 15;
obj.method= function() {alert(15)};
for(a in obj) 
 alert('obj[' + a + ']=' + obj[a]);[/quote]


о.. крута.. за это зачёт  smile

Добавлено через 3 минуты и 8 секунд
Цитата(skyboy @  22.4.2007,  23:40 Найти цитируемый пост)
Надо менять не только данные, но и интерфейс?



надо менять данные, а к данным естественно и функциональность  smile 

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


Цитата(skyboy @  22.4.2007,  23:40 Найти цитируемый пост)
Много "окноподобных" конструкций? 



угу.. тока не окон.. а перегружающихся div-ов  smile + к ним должна идти яваскрипт функциональность  smile 


--------------------
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0879 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.