neu*_*ino 3 javascript jquery textarea
我有一个显示最后一个网页,1000通过AJAX日志文件的行然后更新每x秒钟加载新的内容(如果有的话),并追加到textarea的使用$('#log').append(new_data),排序的tail -f.
一段时间后,如果添加太多行并且页面变慢或无响应,则会出现问题.
所以我想限制行数,比如5000,所以这意味着我应该:
new_dataoverflow = 5000 - lines_ in_new_data - lines_in_textareaoverflow > 0删除第一overflow行在我的脑海里,这涉及一个或多个split('\n')两者的textarea和new_data值,则使用数组的长度和切片,但我想如果有一个整洁的或更好的方式来做到这一点.
您应该能够使用单个split,然后join截断数据,如下所示:
// on data retrieved
var total = ((textarea.value
? textarea.value + "\n"
: "")
+ new_data).split("\n");
if (total.length > 10)
total = total.slice(total.length - 10);
textarea.value = total.join("\n");
Run Code Online (Sandbox Code Playgroud)
工作示例:http://jsfiddle.net/ArvQ7/(为简洁而减少到10行)