Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.12.2013, 20:06
Интересующийся
Отправить личное сообщение для AkidSe Посмотреть профиль Найти все сообщения от AkidSe
 
Регистрация: 10.12.2013
Сообщений: 19

JSON ошибка c <script></script>
Здравствуйте, решил переделать свою ajax-навигацию с $.ajax на getJSON . Типо передавать страницу в json массиве. Но возникла проблема. Когда json отправляет страницу возникает проблема с тегами <script></script>. На скрине ниже будет информативние. Обьясните почему так происходит, пожалуйста.
Код загружаемой страницы:
$arr=array();
ob_start();
                    include $_SERVER["DOCUMENT_ROOT"].'/umenu.php';
                    $arr['html']= ob_get_contents();
                    ob_end_clean();
header('Content-type: application/json; charset=utf-8', true);
echo json_encode($arr);

код js:
function lal(){
$.getJSON("/ajax_pages.php", function(json){
//$('.table_center').html(json['html']);
alert(json['html']);
});
}
Изображения:
Тип файла: jpg problem.jpg (9.9 Кб, 4 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 20.12.2013, 20:19
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от AkidSe
Типо передавать страницу в json массиве
А в чем смысл? Чтоб еще title передавать?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 21.12.2013, 09:55
Интересующийся
Отправить личное сообщение для AkidSe Посмотреть профиль Найти все сообщения от AkidSe
 
Регистрация: 10.12.2013
Сообщений: 19

Смысл в том что я передаю страницу в json массиве, при этом js не вырезается. И при чем тут title? Скорее всего надо <script></script> со страниц удалить. Вынести основной код страниц в отдельные файлы, без css и body - просто код. И загружать его так. Но я подумал, может быть можно обойтись и без этого - поэтому обратился на форум. Сегодня еще посмотрю как организирована ajax загрузка в phpmyadmin. Там вроде нет в загружаемом массиве тегов js.
Ответить с цитированием
  #4 (permalink)  
Старый 21.12.2013, 10:21
Интересующийся
Отправить личное сообщение для AkidSe Посмотреть профиль Найти все сообщения от AkidSe
 
Регистрация: 10.12.2013
Сообщений: 19

P.S '/umenu.php' - страница для примера.
Ответить с цитированием
  #5 (permalink)  
Старый 21.12.2013, 10:23
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от AkidSe
Смысл в том что я передаю страницу в json массиве
Ты не понял вопрос. Я спрашиваю: зачем страницу передавать в JSON массиве? Зачем заворачивать HTML в JSON? В чем смысл этой "упаковки"?
Сообщение от AkidSe
Там вроде нет в загружаемом массиве тегов js
Не проще ли сжать все скрипты в один файл и не с ними?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 21.12.2013, 20:19
Интересующийся
Отправить личное сообщение для AkidSe Посмотреть профиль Найти все сообщения от AkidSe
 
Регистрация: 10.12.2013
Сообщений: 19

Я же написал - передаю html страницу в json так как обычным способом нельзя сделать так как я хочу. Я хочу чтобы когда я писал скрипты для сайта - я не зависел от ajax-навигации. А то, если я буду загружать все в одном файле, то будут всплывать новые и новые проблемы. А так - один раз потружуть а потом буду легко кодировать.
Да и, ты видел чтобы во ВК(ну или других соц.сетях), или phpmyadmin делали так как предлагаешь ты? Это неактуально. Я тут посмотрел - всюда передается html страница в json массиве.
Ответить с цитированием
  #7 (permalink)  
Старый 21.12.2013, 20:40
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Внятно можешь написать - какое преимущество тебе даст обертка в JSON?
Она требуется если нужно передать несколько сущностей. JSON позволяет передать их ввиде массива ("ассоциативного"). Например:

{
    title: 'Новости',
    content: 'тут содержимое...,
}


Но у тебя только одна сущность - HTML-код страницы, верно? Так в чем тогда проблема передать его напрямую, без всяких там врапперов?

Или ты что-то еще собираешься передать кроме html страницы?

Сообщение от AkidSe
Я хочу чтобы когда я писал скрипты для сайта - я не зависел от ajax-навигации.
И чем тебе тут JSON поможет?
Сообщение от AkidSe
Это неактуально
Инструменты выбираются по необходимости а не по какой-то там вообщараемой актуальности.

Сообщение от AkidSe
ты видел чтобы во ВК(ну или других соц.сетях), или phpmyadmin делали так как предлагаешь ты?
ВК делает по всякому. Где-то передает голый html, где-то jsonp, где-то json. Что лучше подходит в каждом конкретном случае - то и использует.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 22.12.2013, 11:15
Интересующийся
Отправить личное сообщение для AkidSe Посмотреть профиль Найти все сообщения от AkidSe
 
Регистрация: 10.12.2013
Сообщений: 19

Обьясню нормально:
1) Делаю на сайте ajax-навигацию. То есть, переход по страницам сайта без полной перезагрузки страниц. То есть, у меня есть <div id='#content'></div>, куда я загружаю данные новой страницы после нажатия юзером ссылкой. Например, нажал "Личный кабинет", в контейнер загружается контент из файла /umenu.php.
2) У меня в файлах есть куча js кода. Например в /umenu.php, я хочу подключать файл umenu.js, с виджетами разными. Он где-то 20 кб весит. Я не хочу его вставлять в общий js файл. Мне такое не нравится. Я люблю многоуровенность, чтобы все было упорядочнено.(ссори за ошибки) . Да и зачем юзеру код виджетом личного кабинета если он сидит,например, в чате?!
3) При моем подходе возникла проблема. $.ajax вырезает js код и ссылки на js файлы, или просто игнорирует их. Так что в этом случае мои желания оказались невозможны.
4) поэтому я решил перейти на json . Ведь если передавать в json массиве html страничку - ничего оттуда не вырезается. Ни js ни ссылки на js.
P.S 1) в json массиве я буду передавать не только html страницу, но title и ссылки js файлы которые я хочу вставить.



Короче, проблему я решил. Но я не могу обьяснить как, ведь, в одном месте мой код работал а в другом нет.
Ответить с цитированием
  #9 (permalink)  
Старый 22.12.2013, 13:29
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от AkidSe
При моем подходе возникла проблема. $.ajax вырезает js код и ссылки на js файлы, или просто игнорирует их.
Ничего он не вырезает и не игнорирует. Проблема тупо в том что при вставке HTML через .innerHTML = 'bla bla' скрипты не исполняются!. И не важно как ты передал html с сервера - через json, через plaintext, через html, через xml, через свой собственный протокол или как либо еще - это не имеет значения!

Сообщение от AkidSe
P.S 1) в json массиве я буду передавать не только html страницу, но title и ссылки js файлы которые я хочу вставить.
С этого и стоило начать. Кстати, я ведь спрашивал:
Сообщение от danik.js
А в чем смысл? Чтоб еще title передавать?
На что ты с ходов ответил:
Сообщение от AkidSe
И при чем тут title?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #10 (permalink)  
Старый 22.12.2013, 13:30
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Вопрос, как ты решил проблему с асинхронным запуском скриптов?
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу распарсить JSON. gorenie jQuery 3 29.11.2013 22:26
Почему ошибка с JSON OklickSpb AJAX и COMET 13 21.10.2012 13:40
JSON или JSONP для запросов на другой сервер? Метод GET, для длинных сообщений? Kotakota jQuery 5 23.08.2011 23:12
jQuery. Обработка ошибок и JSON. mma_mma jQuery 3 19.07.2010 12:10
Ошибка в jquery.forms ? Помогите разобраться. Ксандер jQuery 10 26.08.2009 18:39