如何在Web应用程序上实现自动保存

时间:2019-06-20 21:32:30

标签: javascript

我正在尝试合并此代码

var timeoutId;  
$('textarea').keypress(function () {
    if (timeoutId) clearTimeout(timeoutId);
    timeoutId = setTimeout(function () {
        $.ajax({
            url: '/savecomment',
            data: { comment: $(this).val() }
        });
    }, 750);
});
在教程here

在我的Web应用程序中实现自动保存。但是,我对两件事感到困惑。

  1. 此示例中代码到底保存在哪里?重新加载页面时,我写的文本不再在那里。
  2. 我试图将他们的实现示例结合到我的代码中,但是没有用。文本框和其上方的灰色“无更改”文本看起来很好,但是在我键入时此文本不会更改。如果完全按照示例中的说明复制HTML,CSS和JS,怎么办?

很抱歉提出基本问题,并在此先感谢。

2 个答案:

答案 0 :(得分:0)

简短的答案是:因为您可能没有实现服务器端,例如sum(mydata$"column_name"!= "") 调用的/savecomment端点。

我认为这是一个过度设计的示例,可以使用$.ajax()轻松解决,就像这样简单:

localStorage
// check if we have something to restore on page-load
$(window).on('load', function() {
    if ( localStorage.getItem('text') ) {
        $('textarea').val(localStorage.getItem('text'));
    }
});

$('textarea').on('input', function () {
    localStorage.setItem('text', $(this).val());
    
    // in a real browser you could verify it by
    // uncommenting the following line, does not work
    // in the sandbox this snippet runs in...
    
    console.log('Saved text: ', localStorage.getItem('text'));
});


$('form').on('submit', function() {
    alert('Actually save the text to the server via AJAX call');
    // you should then clear the saved text after you successfully saved
    // the content on the server
    localStorage.removeItem('text');
});

然后,当用户实际完成操作时,具有一个可以单击的“保存”按钮,该按钮实际上会将完成的文本发送到服务器。

答案 1 :(得分:0)

  1. 它保存在哪里?

它保存在/ savecomment路径中运行的应用程序中。您需要实现此端点。

  1. 生成html,css和js是否足够?

不够。您需要实现也保存评论的服务器应用程序。