2013-10-24 3 views
0

В настоящее время я с помощью JQuery, чтобы прочитать внешний файл .json, содержащий данные для просмотра слайд-шоуПолучение данных из внешнего файла JSon

фото-slideshow.json

[ 
     { 
      "title" : "my tile", 
      "image" : "xx.jpg", 
      "url" : "www.example.com", 
      "firstline" : "woow", 
      "secondline" : "the weather is fine" 
     }, 

     ..... 
     ..... 
    ] 

    <script type="text/javascript" > 
    var photos; 
    $.getJSON(
      "lang/en/photo-slideshow.json", 
      function(result) { 
        photos = result; 
      } 
     ); 
    <script> 

Скрипт прекрасно работает на страницах, дольше загружаться! На загрузке страниц очень быстро (например, 1 сек) Файл json doesn t seem to be read completely and the slideshow doesn t start.

ответ

0

Вы инициализируете слайд-шоу после вызова json callback?

Поскольку вы выполняете асинхронный вызов объекта json, ваша инициализация слайд-шоу должна быть в функции обратного вызова, запущенной getJson, чтобы убедиться, что у вас действительно есть данные под рукой, когда это необходимо.

Вы должны сделать что-то вроде этого:

$.getJSON('path/to/my.json',function(result){ 
    mySlideShowComponent.init(result); 
}) 
+0

асинхронный звонок не был проблемой. –

+0

асинхронный звонок не был проблемой. Слайд-шоу инициализируется после, но иногда начинается раньше, чем я получаю данные из json-файла. –

+0

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

0

Я решил его! Я поместил эту строку в свой код: $ .ajaxSetup ({async: false}); Thanks

Смежные вопросы