保存拖放布局的最佳方法

asl*_*esk 6 javascript sql-server jquery

我已经看过几次这个问题,但它们主要与个别物品和饼干有关.我正在构建一个具有工具箱拖放功能的应用程序(非常类似于您在Visual Studio中看到的 - 即将对象拖到窗体上,为它们命名等等)因此可放置区域可能包含许多对象,包括嵌套的droppables.

关于什么是保存到SQL Server数据库的最佳方法,然后重新加载这样一个复杂的布局的任何意见?对象需要加载并完全按照保存的方式显示.它将由ajax完成,但除此之外,我不确定最好的方法.任何可能指向正确方向的例子都会很棒.

非常感谢.

Jef*_*eff 2

您可以通过 XML 或 JSON 序列化数据并将序列化的字符串保存到数据库中。这将使您的数据库和 Web 服务基础设施变得简单,而不是单独保存每个控件,但需要在 JS 端进行更多解析,但由于您的应用程序听起来 JS 很重,我认为这对您来说不应该是问题。

var state = {
    textbox1:{
        x:100,
        y:200,
        width:20,
        height:10,
        defaultValue:'Hello world!'
    },
    button1:{
        x:150,
        y:200,
        width:20,
        height:10,
        text:'Push me!'
    }
}
var serialized = JSON.stringify(state);
yourService.SaveSate(serialized)   //made this object up to mock your web service
Run Code Online (Sandbox Code Playgroud)

JSON.stringify仅适用于现代浏览器,但如果您的目标是较旧的浏览器,则有很多替代方案。