gpt4 book ai didi

javascript - 从 Parse.com 更新数据,无需重新登录

转载 作者:行者123 更新时间:2023-12-03 09:01:01 24 4
gpt4 key购买 nike

我有一个网络应用程序,用于管理用户的预算。在设置页面中,我可以编辑预算,单击“保存”后,我返回主页,其中有一行显示预算金额。问题是,当我登录时,我看到了正确的预算,编辑预算并返回主页后,我仍然看到旧的金额。只有注销并再次重新登录后,主页中的该行才会更新为新的金额。有什么解决办法吗?

保存新预算的代码:

    $("#saveNewBudgetAmount").click(function(){
var User = Parse.User.extend("User");
var query = new Parse.Query(User);
var newBudget = $("#newBudgetSum").val();
query.equalTo("objectId", Parse.User.current().id);
query.first({
success: function (User) {
User.save(null, {
success: function (user) {
User.set("budget", newBudget);
User.save();
location ="Mainpage.html";
}
});

}
});

});

以及在主页上显示它的代码:

    var MBudget = (function () {
if (Parse.User.current()) {
return("Your monthly budget is:" +" "+Parse.User.current().get("budget")+" "+"<a href=Settings.html>(Edit)</a>");

}

最佳答案

一些事情正在发生。

首先,您应该简化代码,并使用警报和错误处理,以便您知道代码是否有效以及何时进行回调。在设置任何新值之前,您还会调用 .save() 一次,因此您的保存是无用的。

您还需要为您使用的每个保存函数提供成功和错误回调 - .save() 本身是一个异步方法,并且由于您没有在保存方法中调用成功函数,因此您的应用程序将导航在知道保存功能是否有效之前,返回“Mainpage.html”。这是一个更好的实现:

var newBudget = $("#newBudgetSum").val();

var currentUser = Parse.User.current();
currentUser.save(
{
// Set as many properties as you like in this field,
// think of it as a JSON object except you don't
// have to enclose the values in strings.
budget : newBudget,
}, {
success: function(user) {
alert("Budget successfully saved, new budget is: " + user.get("budget"));
},
error: function(error) {
// error functions will always have an error argument handed back to the client,
// with properties error.code and error.message. Error messages are incredibly useful.
alert("Budget save failed, error: " + error.code + " " + error.message);
}
});

另一个提示是,出于多种原因,我建议 Parse.com 的所有用户在开发过程中使用alert() 消息来获取成功和错误回调 - 但关键原因是 1) 它会提醒您是否该代码有效,2) 它将防止意外错误导致对 Parse.com 服务器的无限请求,这种情况有时确实会发生,并会导致他们向您的帐户收费。

关于javascript - 从 Parse.com 更新数据,无需重新登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32302553/

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