【问题标题】:Sync dataview with database将数据视图与数据库同步
【发布时间】:2017-04-07 21:58:26
【问题描述】:

我正在使用带有 Dataview 的 Slickgrid 来编辑多达 5000 行的表,并使用 Laravel 从 MySQL 数据库中获取数据。我创建了一个 AJAX 保存函数,可以将所有数据保存到数据库中,但是运行速度非常慢,并且会冻结网格几秒钟:

function TestSave() {

    var request;
    var token = $('meta[name="csrf-token"]').attr('content');

    request = $.ajax({
        url: "/est/public/estimate/{{ $id }}",
        type: "PATCH",
        dataType: "json",
        params: {_token:token},
        async: true,
        data: { data: JSON.stringify(dataView.getItems()), _token:token
        }
    });

}

有没有办法在不冻结的情况下保存数据?我曾想过使用 grid.onClick 或 onBeforeEditCell 并在每行更改时单独保存每一行,但插入一行之类的功能会更改插入下方每一行的“顺序”值。

保持 Dataview 和数据库同步的最佳方法是什么?

【问题讨论】:

    标签: javascript ajax slickgrid


    【解决方案1】:

    这是一个复杂的问题。
    首先,ajax 调用应该是异步的,所以它不应该阻塞 5 秒。
    但是,如果您将所有 5000 行都传递给服务器,那么 JSON 编码可能需要一段时间。您最好只将更改的行传递给服务器。 然而,这本身比乍看起来要复杂得多。

    您最好使用现有框架为您处理数据。 微风是一个不错的选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-30
      • 1970-01-01
      • 2012-04-26
      • 2016-02-20
      • 2016-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多