gpt4 book ai didi

Javascript拉动刷新保留LastID变量

转载 作者:行者123 更新时间:2023-12-02 20:57:16 26 4
gpt4 key购买 nike

学习所以请友善,不是专业编码员!对于 PHP 还可以,但对于 Javascript 我完全是新手。

tl;dr 如何保留 JSON 中的 last id 变量以阻止我的 AJAX 提取已有的内容?

试图让“下拉刷新”工作,它正在出现,但我被卡住了。我的 mysql/php/ajax 很好。我可以拉下来它就会更新。但它继续添加现有内容。

我研究了以不同方式分配变量,使用letvarnothingwindow.variable。如果有任何区别,请使用Framework7

今天是页面,highid是JSON返回的最高id号。当调用 get 时,会将 highid 提供给 mysql 以获取更新的内容。 PHP/JSON/AJAX 部分有效。但找不到下次设置变量的方法。

var html = '';

// Pull to refresh on Today tab
$$('.ptr-content').on('ptr:refresh', function (e) {

setTimeout(function () {


if (typeof today_highid === 'undefined') {
var today_highid = 5;
}
app.request.json('/__php/json1.php', { article_id: today_highid }, function (data) {

for(var i = 0; i < data['article'].length; i+=1){

html+=
'<div class="title-container">'+
'<span class="title-date">Tuesday 19 March</span>'+
'<h1>' +data['article'][i]['article_title']+ '</h1>'+
'</div>'+
'<a href="/single/">'+
'<div class="card">'+
'<img class="card-image" src="img/thumb-14.jpg" alt="">'+
'<div class="card-infos">'+
'<h2 class="card-title">' +data['article'][i]['article_content']+ '</h2>'+
'<div class="card-bottom">'+
'<div class="card-author">'+
'<img class="card-author-image" src="img/authors/author-1.jpg" alt="">'+
'<div>Camille Aline</div>'+
'</div>'+
'<div class="card-comments"><i class="f7-icons">chat_bubble_fill</i></i>' +today_highid+ '</div>'+
'</div>'+
'</div>'+
'</div>'+
'</a>';


}
//$$('.data-table table').html(tableHtml);
// Prepend new list element
$$('.ptr-content').find('#today-content').prepend(html);

window.today_highid = data['status']['highid'];


});

感谢任何帮助,或者指向一个好的工作教程,谢谢!

最佳答案

问题是您有 window.today_highid = data['status']['highid']; 但您将其设置为 var Today_highid = 5 函数内部。这是不一样的。 today_highid窗口 的属性。此外,当您实际使用它时,您只是在函数作用域中引用 var 。不是 window.today_highid` 的值。

您需要将初始值移出函数范围。请检查以下内容以确保清晰度。

还有letconst是 block 作用域变量。你不应该再使用 var 。它总是要么 letconst 。阅读Javascript gotchas .

let todayHighId = 5; //default

$$('.ptr-content').on('ptr:refresh', function (e) {

setTimeout(function () {

app.request.json('/__php/json1.php', { article_id: todayHighId }, function (data) {

let { article, status } = data; // I assume article is a property of data. So deconstruct the data object to get the properties
let lastArticleId = article[article.length - 1]

for(let i = 0; i < article.length i+=1){
....
}

todayHighId = status.highid;


});
}

顺便说一句,您应该避免使用 _ 声明变量并使用 [] 访问对象的属性。我知道如果 API 是这样设计的,那就别无选择。但应该避免它,除非它绝对是唯一的方法。

关于Javascript拉动刷新保留LastID变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61443193/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com