В настоящее время я работаю над решением SharePoint 2013, и мы широко используем Javascript и jQuery. Я столкнулся с довольно раздражающей проблемой, которую я не могу понять. Пожалуйста, имейте в виду, что я не использовал Javascript в прошлом.Как безопасно полагаться на данные Ajax, присутствующие
У меня есть список библиотек изображений в моем решении SharePoint, в котором хранятся изображения для веб-части, использующей фреймворк Slides.js для отображения изображений. Чтобы получить изображения, я должен использовать Ajax для получения изображений из списка библиотек, а затем применить slidesjs к моему div-контейнеру в файле .ascx.
Поскольку Ajax возвращает данные, когда они готовы, я не могу быть уверенным, что данные присутствуют во время применения рамки slides.js к неупорядоченному списку в моей разметке. Данные могут быть там, или нет. И как вы могли догадаться; если его там нет, он просто не работает.
Чтобы обойти проблему для демонстрационных целей, я добавил setTimeout, так что slides.js не применяется до 300 мс, но это уродливое исправление, от которого я хочу избавиться. И это нестабильно.
Итак, чтобы обернуть, мой вопрос в основном; можно ли безопасно полагаться на данные Ajax, которые будут присутствовать одновременно, и если да, то как?
Не стесняйтесь, спрашивайте о дополнительной информации.
Заранее спасибо.
Edit:Добавлен код
Вот мои варианты Аякса
var ajaxOpts = {
url: web + endpoint,
type: "GET",
headers: { "accept": "application/json;odata=verbose" },
success: successHandler,
error: errorHandler
}
И successHandler
function successHandler (response) {
// Do response parsing
setTimeout(function() {
runSlider(); // basically jQuery("#slider").slidesjs(slidesOpts)
}, 300);
}
Можете ли вы включить код для вызова AJAX и когда вы применяете ползунок. – MikeSmithDev
Обычно вы отправляете весь свой код в обратный вызов, который выполняется, как только AJAX существует. Или никогда, если он никогда не существует, например. из-за отключения сети. Это безопасно. Ключевое слово: ориентированное на события программирование – mirabilos