iDangerous Swiper 随更大的结果集消失(SQL Azure 连接)

iDangerous Swiper disappearing with larger result sets (SQL Azure connection)

我在 PHP 页面上的 iDangerous 刷卡器遇到了一个奇怪的问题...我目前正在对我公司使用的触摸屏信息亭进行一些更新(最大的变化是从MySQL 数据库到 SQL Azure 云数据库)。它现在用于从相对较小的数据库中将 SQL 中的纯文本数据加载到单独的滑动器幻灯片中。有不同的 selectable 类别具有不同的结果集大小,较小的类别似乎工作得很好,但是当 selected 较大的类别时,似乎存在某种时间问题或其他问题整个 swiper 容器要么消失,要么完全无法加载。我们拥有的最大结果集大约有 75 条记录,实际上根本不需要任何时间从直接查询中加载,所以我不知道发生了什么。目前,iDangerous swiper 超时设置为 1000 毫秒,如果我将该数字增加到 5000 毫秒,它可以解决问题。问题是,每次 select 不同的类别时,用户端都必须等待 5 秒才能加载基本文本结果,这真的很糟糕。除了限制结果集(会破坏目的,所以这不是一个真正的选择)或使超时变得不可用之外,我们有什么建议可以解决这个问题吗?我在查询原始数据库时没有遇到这个问题(当时在本地主机上是 运行),所以我猜它可能与 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)*/;
}

提前感谢您的建议!

我明白了,刷卡器在错误的地方被初始化了。它应该在 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();
    }
});

}
}

现在有效:)