在(ngModelChange)
我使用regex
检测内容更改并将RestAPI发送到服务器。但是,如果我发送一个1000字符的段落,当我添加一个新的5个字母的单词时,实际上它会向服务器发送1001 + 1002 + 1003 + 1004 + 1005 = 5015个字符,这是完全没必要的。
所以我试图检测句子完成(或单词完成),以便只发送新句子(单词)(如上例所示,只发送5个新字符,或者至少只发送1005个字符) )。
我尝试过的方法是:(使用.trim()
,length
和<textarea>
)
虽然我不知道这是否是最好的方法。
有没有更好的方法来检测{
-key1: {
type: 'type1',
completed: false
},
-key2: {
type: 'type2',
completed: true
},
-key3: {
type: 'type2',
completed: false
}
}
中的字/句更改?
总结:虽然我不想考虑按时更新,但仍然是一个很好的考虑方式。 (检查所选答案)
答案 0 :(得分:1)
一种技术是使用超时,每隔几秒或任何间隔
只允许一个请求var timeoutFn;
function change() {
console.log('change');
clearTimeout(timeoutFn);
timeoutFn = setTimeout(doApiRequest, 1000);
}
function doApiRequest() {
console.log('apiRequest');
}
for(i = 0; i < 10; i++){
change()
}
答案 1 :(得分:1)
不知道我是否遗漏了任何东西,但我认为,检查输入的最后一个字符就足以检测一个单词了。如果最后一个字符是一个字母([a-z]),那么它不是一个字;如果它是其他任何东西,那么它之前的内容就是一个单词。
对于句子,我认为检测'。'就足够了。字符。你得到'。',你得到一个句子的结尾。内容直到前面的'。'是你的判决。
我知道这是非常基本的,但可以随意添加。