Javascript 如何保存对象以供以后使用?通过JSON或其他方式发送并存储在数据库中,然后恢复

Javascript 如何保存对象以供以后使用?通过JSON或其他方式发送并存储在数据库中,然后恢复,javascript,jquery,save,Javascript,Jquery,Save,我想知道如何保存event.target供以后使用。我意识到可以使用.data(),但这不会在会话期间或为其他用户保存它 我发现如果我这样做的话,我可以得到一堆关于被点击的元素(类、id、父元素等)的信息 jQuery('body').click( function(event) { jQuery('body').children().wrapAll('<div class="wp_super_heatmap"></div'); x_coord = event

我想知道如何保存
event.target
供以后使用。我意识到可以使用
.data()
,但这不会在会话期间或为其他用户保存它

我发现如果我这样做的话,我可以得到一堆关于被点击的元素(类、id、父元素等)的信息

jQuery('body').click( function(event) {
    jQuery('body').children().wrapAll('<div class="wp_super_heatmap"></div');

    x_coord = event.pageX - jQuery( event.target ).offset().left;
    y_coord = event.pageY - jQuery( event.target ).offset().top;


    nodeName = event.target.nodeName;
    nodeClass = event.target.className;
    currentId = jQuery(event.target).attr('id');
    nodeParents = jQuery(event.target).parents()
        .map(function () { 
              return this.tagName; 
        }).get().join(", ");
然后将其与我的AJAX帖子一起发送

基本上,有人知道保存javascript或jQuery对象以供以后使用的方法吗


编辑:仅供参考,稍后我将通过在这样的页面上放置一个点来重新创建单击。。。 每个(data.dot_集合,函数(){ x_coord=this.x_coord; y_coord=this.y_coord; jQuery(“”).css({'top':y_-coord+“px”,'left':x_-coord+“px”}).appendTo('body');
});

正如Ryan所指出的,DOM节点不容易序列化。对于更复杂的应用程序,您应该依赖更好的模式,并在应用程序中添加模型层。只需在javascript的对象树中跟踪用户输入,并添加相应设置这些值的EventHandler

这些对象可以在卸载时序列化,在加载时反序列化。一个很好的优点是,你的应用程序看起来更干净,维护起来更好

我的意思是类似的,但要注意,这样的功能很容易自我实现

如果您愿意,您甚至可以使用本地存储和(非常重要的)脚本,如

更新


我知道这听起来需要做很多工作,但相信我,这样的决定总是值得的

您无法(轻松地)序列化DOM元素,因为它们包含循环引用。首先,您必须确定需要哪些数据。那到底是什么呢?嗯,就是这样。我想准确地保存用户单击网页的位置。由于项目可以在页面上浮动或居中,或者我希望能够保存点击的相对坐标,以及关于点击的足够信息,以便稍后在那里放置一个“点”。我的问题是,类、类型、id等并没有提供足够的关于单击元素的信息。我从中得到的是,最好创建一个具有节点树的模型,如->html->body->等,然后添加EventHandler,在模型中添加一个“点”,该点引用树中的一个对象。这就是你的意思吗?我不介意工作。它让我忙着做我的webdev hobby=)。我不是指大的,我是指小的;)。花些时间决定它应该有什么结构。大多数情况下,甚至不需要一棵树。我当然不会复制整个DOM,只是将一些数据添加到一个散列中并使用sync this。我不确定在没有整个DOM树的情况下,我如何能够识别单击了哪个元素。你在“只需将一些数据添加到散列中并使用同步”这一点上让我迷路了。如果这是一种实际保存数据的方法,我在这方面很好。这些都是在WordPress上运行的,所以我可以很容易地访问DB。我只需要一个对象来布局DOM的结构。单独的“点”对象将引用DOM中的哪个元素。显然,如果更改DOM,旧的“点”将不再有效。
node = jQuery( event.target );
node_json = JSON.stringify( node );