parse.com 删除速度太慢,无法重新渲染
parse.com delete too slow for re-render
我正在向我的网络应用程序添加删除(销毁)对象功能。
当我销毁对象然后重新渲染时,我的 table 仍然显示销毁的行。当我再次删除时,它无法删除。我看起来我的重新渲染对于销毁功能来说太快了。销毁完成后如何重新渲染?
function fncBuildEditData(i) {
var EditData = Parse.Object.extend("WorkOrders");
var query = new Parse.Query(EditData);
query.get(i, {
success: function(myObj) {
myObj.destroy({});
},
error: function(object, error) {
alert("DELETION FAILED!");
}
});
fncBuildWOTable();//rebuild table
}
您的 query.get
会在运行其 success
功能之前立即 return,同样地,myObj.destroy
也会在 [=25= 之前 return ] 是 success
函数。您应该在内部函数中执行重新加载,如下所示:
function fncBuildEditData(i) {
var EditData = Parse.Object.extend("WorkOrders");
var query = new Parse.Query(EditData);
query.get(i, {
success: function(myObj) {
myObj.destroy(
{
success: function(x) {
fncBuildWOTable();//rebuild table
},
error: function(x, error) {
alert("DELETION FAILED!");
}
});
},
error: function(object, error) {
alert("GET FAILED!");
}
});
}
您还提到您正在使用以下代码绑定函数:
function ClickedRowButton() {
$(document).on('click', '.btnDeleteLine', function() {
var row = $(this).parents('tr').attr('id');
//var rowtext = $(this).closest('tr').text();
//alert(row);
fncBuildEditData(row);
});
}
我相信您实际上只是试图找到最近的元素,而不是元素的集合,所以请改用它:
var row = $(this).closest('tr').attr('id');
我正在向我的网络应用程序添加删除(销毁)对象功能。 当我销毁对象然后重新渲染时,我的 table 仍然显示销毁的行。当我再次删除时,它无法删除。我看起来我的重新渲染对于销毁功能来说太快了。销毁完成后如何重新渲染?
function fncBuildEditData(i) {
var EditData = Parse.Object.extend("WorkOrders");
var query = new Parse.Query(EditData);
query.get(i, {
success: function(myObj) {
myObj.destroy({});
},
error: function(object, error) {
alert("DELETION FAILED!");
}
});
fncBuildWOTable();//rebuild table
}
您的 query.get
会在运行其 success
功能之前立即 return,同样地,myObj.destroy
也会在 [=25= 之前 return ] 是 success
函数。您应该在内部函数中执行重新加载,如下所示:
function fncBuildEditData(i) {
var EditData = Parse.Object.extend("WorkOrders");
var query = new Parse.Query(EditData);
query.get(i, {
success: function(myObj) {
myObj.destroy(
{
success: function(x) {
fncBuildWOTable();//rebuild table
},
error: function(x, error) {
alert("DELETION FAILED!");
}
});
},
error: function(object, error) {
alert("GET FAILED!");
}
});
}
您还提到您正在使用以下代码绑定函数:
function ClickedRowButton() {
$(document).on('click', '.btnDeleteLine', function() {
var row = $(this).parents('tr').attr('id');
//var rowtext = $(this).closest('tr').text();
//alert(row);
fncBuildEditData(row);
});
}
我相信您实际上只是试图找到最近的元素,而不是元素的集合,所以请改用它:
var row = $(this).closest('tr').attr('id');