В настоящее время я использую JQuery для чтения внешнего файла.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 файл не t seem to be read completely and the slideshow doesn
запускается.
Я решил это! Я поместил эту строку в свой код: $.ajaxSetup({async: false}); благодаря
Вы инициализируете слайд-шоу после того, как обратный вызов json запущен?
Когда вы выполняете асинхронный вызов объекта json, ваша инициализация слайд-шоу должна быть в функции обратного вызова, запущенной getJson, чтобы убедиться, что у вас действительно есть данные под рукой, когда это необходимо.
Вы должны сделать что-то вроде этого:
$.getJSON('path/to/my.json',function(result){
mySlideShowComponent.init(result);
})