Javascript 如何使用Ajax无限滚动设置追加新行
我对Javascript有点生疏了 我有一个无限滚动设置。当用户到达页面底部时,会在javascript中触发以下事件:Javascript 如何使用Ajax无限滚动设置追加新行,javascript,jquery,ajax,Javascript,Jquery,Ajax,我对Javascript有点生疏了 我有一个无限滚动设置。当用户到达页面底部时,会在javascript中触发以下事件: maintable.innerHTML += 'Hello <br><br><br>'; 当getRows()时;它自己运行最初它会在后端数据库中获得前50条记录。 然后一个变量从1更新到51,这样下次运行时(滚动到底部时),它会将行51拉到100 我的问题是,附加部分:+=,似乎不起作用,因为它将我的前50行替换为第51到100行。我想
maintable.innerHTML += 'Hello <br><br><br>';
当getRows()时;它自己运行最初它会在后端数据库中获得前50条记录。
然后一个变量从1更新到51,这样下次运行时(滚动到底部时),它会将行51拉到100
我的问题是,附加部分:+=,似乎不起作用,因为它将我的前50行替换为第51到100行。我想把它加上,这样我现在看到的是第1到100行
有人能指出+=和函数的错误吗?
也许有更好的方法在不丢失前几行的情况下增加新的行数
谢谢
编辑:
这是getRows()的代码;功能:
<script>
function getRows(str) {
if (str=="") {
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getrows.php?q="+str,true);
xmlhttp.send();
}
</script>
函数getRows(str){
如果(str==“”){
document.getElementById(“txtHint”).innerHTML=“”;
回来
}
if(window.XMLHttpRequest){
//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}else{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“txtHint”).innerHTML=xmlhttp.responseText;
}
}
open(“GET”、“getrows.php?q=“+str,true”);
xmlhttp.send();
}
文件getrows.php是对我的数据库的一个简单查询,它有1000条记录。对于返回的每一行,该文件还在循环中回显表标记和td元素
问题仍然是,除了使用=+。可能是appendChild()而不是innerHtml之外,我对在已经存在的内容中附加内容知之甚少。一些无限卷轴在要加载的页面中使用锚定作为占位符。您可以发布getRows的代码吗?当然可以:我已将其添加到帖子中。谢谢
<script>
function getRows(str) {
if (str=="") {
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getrows.php?q="+str,true);
xmlhttp.send();
}
</script>