Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.03.2014, 11:51
Новичок на форуме
Отправить личное сообщение для pers_tmb Посмотреть профиль Найти все сообщения от pers_tmb
 
Регистрация: 12.03.2014
Сообщений: 5

Чтение xml средствами JavaScript
Добрый день!

Работаю в банке в далёкой от программирования сфере, но решил вспомнить молодость и реализовать один проект: интерактивная карта с важными географическими объектами.

Реализовывать приходится только средствами javascript. Для карты взял движок Lefleat. Но столкнулся со следующей проблемой: где хранить данные по географическим объектами (координаты, тип). Проштудировал интернет, так понял, что javascript'ом можно считывать расположенные на локальном диске xml-файлы.

Планирую, что результатом будут два файла (html и xml) на общем сетевом диске.

Но реализация, описанная тут http://xmlhttprequest.ru/ по какой-то причине не работает.

Вопрос: не работает она из-за корявости моих рук или из-за того, что данная технология позволяет читать xml только с сервера?
Подскажите, как из моей ситуации можно "выкрутиться"?


PS в банке на большинстве компьютеров браузер IE8, но скорее всего будут обновлять скоро.
Ответить с цитированием
  #2 (permalink)  
Старый 12.03.2014, 12:09
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,493

С javascript рекомендуется таки использовать json для данных. Гораздо удобнее.

Не работает же по второй причине. Если брать только ie, то оный может по своему работать с локальными файлами(FileSystemObject итп), но возможно потребуется специальная настройка разрешений.

P.S. Если сохранения данных не требуется - только загрузка, то имеет смысл не париться, а хранить их в отдельном js файле в формате jsonp.)
__________________
29375, 35

Последний раз редактировалось Aetae, 12.03.2014 в 12:19.
Ответить с цитированием
  #3 (permalink)  
Старый 12.03.2014, 13:19
Новичок на форуме
Отправить личное сообщение для pers_tmb Посмотреть профиль Найти все сообщения от pers_tmb
 
Регистрация: 12.03.2014
Сообщений: 5

Спасибо! jsonp - очень даже подходящее решение!

Но по какой-то причине пример обработчика с этого сайта работает только в Firefox'e.. Есть ли способ чтения json файлов для IE?

<script  type="text/javascript" src="jquery-2.1.0.js"></script >
<script >

$(document).ready(function()
{    
	$.getJSON("name.js", function(data){
		alert(data.name);   
	});

});
</script >



Пример отсюда, если запускать локально, тоже работает только в Firefoxe. В чём может быть дело?

Последний раз редактировалось pers_tmb, 12.03.2014 в 13:30.
Ответить с цитированием
  #4 (permalink)  
Старый 12.03.2014, 13:56
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,493

Вот всё мудрить норовят. Накой оно надо. Jsonp на деле это просто jasvascript файл.
<script>
function callback(data){
//ваш скрипт
}
</script>
<script src="jsonp-data.js"></script>

Пример: jsonp-data.js
callback({
    "name": "Zara Ali",
    "age" : "67",
    "sex": "female"
})

И всё.

$.getJSON - это тот же самый xmlhttp только в обёртке из jquery.
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 12.03.2014, 14:33
Новичок на форуме
Отправить личное сообщение для pers_tmb Посмотреть профиль Найти все сообщения от pers_tmb
 
Регистрация: 12.03.2014
Сообщений: 5

Aetae, спасибо!
Вопрос исчерпан :-)
Ответить с цитированием
  #6 (permalink)  
Старый 12.03.2014, 16:21
Новичок на форуме
Отправить личное сообщение для pers_tmb Посмотреть профиль Найти все сообщения от pers_tmb
 
Регистрация: 12.03.2014
Сообщений: 5

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

Есть вышеописанная конструкция.
<script>
function callback(data){
    //ваш скрипт
}
</script>
<script src="jsonp-data.js"></script>

В теле функции callback данными из jsonp-data.js можно оперировать как угодно. Но вывести эти данные за пределы тела функции не получилось.

А мне эти данные нужны в конструкции вроде
$().ready(function() {
	
});


Пробовал return'ом - по понятным причинам не работает.
Ответить с цитированием
  #7 (permalink)  
Старый 12.03.2014, 16:36
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,493

Судя по всему по js знаний у вас совсем не много. Вам главное чтоб работало так понимаю. Тогда в лоб:
<script>
var d;
function callback(data){
    //ваш скрипт
    d = data;
}
</script>
__________________
29375, 35
Ответить с цитированием
  #8 (permalink)  
Старый 12.03.2014, 16:51
Новичок на форуме
Отправить личное сообщение для pers_tmb Посмотреть профиль Найти все сообщения от pers_tmb
 
Регистрация: 12.03.2014
Сообщений: 5

Знаний действительно не хватает.
По непонятным для меня причинам, алерт внутри функции срабатывает исправно, а внешний алерт нет.
Хром пишет: "Uncaught TypeError: Cannot read property 'name' of undefined".
var d;
	function callback(data){
		d = data;
		alert(d.name+"1");
	}	
	alert(d.name);
Ответить с цитированием
  #9 (permalink)  
Старый 12.03.2014, 17:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

так веть данные то ещё загрузились для 6 строки и 1 строка заполнится когда загрузится <script src="jsonp-data.js"></script>

содержание тогда
var d;
	function callback(data){
		d = data;
		alert(d.name+"1");
	}

jsonp-data.js
callback({
    "name": "Zara Ali",
    "age" : "67",
    "sex": "female"
});
alert(d.name);

Последний раз редактировалось рони, 12.03.2014 в 17:09.
Ответить с цитированием
  #10 (permalink)  
Старый 12.03.2014, 18:26
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,493

pers_tmb,
Внутри .ready всё будет, для того ready и используют.
__________________
29375, 35
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование XML в HTML посредством Javascript zornig Общие вопросы Javascript 3 06.08.2011 00:40
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34
Чтение файла средствами javascript DVVID Общие вопросы Javascript 4 05.04.2010 15:00
Flash c XML плюс javascript Vadim028 Events/DOM/Window 0 03.04.2010 14:40