iDangerous Swiper исчезает с большими наборами результатов (соединение SQL Azure)

У меня странная проблема с iDangerous swiper на странице PHP … В настоящее время я делаю некоторые обновления в сенсорном киоске, который использует моя компания (самое большое изменение — это переход с базы данных MySQL на облачную базу данных SQL Azure). ). Сейчас он используется для загрузки простых текстовых данных из SQL в отдельные слайды с относительно небольшого размера. Существуют различные выбираемые категории с различными размерами результирующего набора, и более мелкие, кажется, работают просто отлично, но когда выбираются более крупные категории, кажется, что возникает какая-то проблема синхронизации или что-то в этом роде, и весь контейнер-swiper либо исчезает, либо просто полностью перестает работать. нагрузки. Самый большой набор результатов, который у нас есть, составляет около 75 записей или около того, что на самом деле совсем не требуется времени для загрузки по прямому запросу, поэтому я не знаю, что происходит. В настоящее время тайм-аут iDangerous установлен на 1000 мс, и если я увеличу это число до 5000 мс, это решит проблему. Проблема заключается в том, что пользователю не нужно ждать 5 секунд каждый раз, когда вы выбираете другую категорию только для загрузки основных текстовых результатов. Любые предложения о способах, которые мы можем сделать, чтобы исправить это, кроме ограничения набора результатов (может нанести ущерб цели, так что это на самом деле не вариант) или сделать время ожидания необычайно долгим? У меня не было этой проблемы при запросе исходной базы данных (которая в то время работала на localhost), поэтому я предполагаю, что это может иметь какое-то отношение к соединению SQL Azure с PHP?

function getInventors(cat,text) {
var xmlhttp;
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("content").innerHTML = xmlhttp.responseText;
}
}

xmlhttp.open("GET", "getBrowse.php?CAT="+cat+"&TEXT="+text, true);
xmlhttp.send();

setTimeout(function() {
var mySwiper2 = new Swiper('.swiper-container',{
centeredSlides: true,
autoplay: 7000,
slidesPerView: 'auto',
watchActiveIndex: true,
onTouchMove: function(swiper){
mySwiper2.startAutoplay();
}
}) }, 1000 /*changing this to a much higher number fixes it)*/;
}

Заранее спасибо за совет!

0

Решение

Я понял это, swiper был инициализирован не в том месте. Он должен был быть инициализирован внутри самой функции Ajax, а не снаружи, как это.

function getInventors(cat,text) {
var xmlhttp;
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("content").innerHTML = xmlhttp.responseText;

var mySwiper2 = new Swiper('.swiper-container',{
centeredSlides: true,
autoplay: 7000,
slidesPerView: 'auto',
watchActiveIndex: true,
onTouchMove: function(swiper){
mySwiper2.startAutoplay();
}
});

}
}

Теперь работает 🙂

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]