JavaScript使用点滴
一、字符串替换的小插曲
遇到一个小插曲,想要把后台返回的字符串输出给前端视图,字符串中包含 换行,需要使用javascript对其进行替换成<br />。
if(o){ console.log(o); var str= o.replace(/ /g, "<br />"); /*var node=document.createElement("div"); var textnode=document.createTextNode(str); node.appendChild(textnode); document.getElementById('add_info').appendChild(node);*/ $("#add_info").append(str); if(str.indexOf("all rsync done") > 0 ){ clearInterval(tim); /*var node=document.createElement("div"); var textnode=document.createTextNode("=====同步完成!======"); node.appendChild(textnode); document.getElementById('sync_done').appendChild(textnode);*/ $('#sync_done').append('=====同步完成!======') } }
注释的部分是使用原生的javascript代码,最后输出到页面中的结果是仅仅把字符串中的 换成了<br />,并没有真正的转义。后来使用jQuery进行实现,最终成功实现换行,这也许是javascript的bug。
二、关于轮询函数setInterval()
起初,在setInterval函数的第一个参数使用了一些基本的类似与alert的函数语句,运行时ok的,但是加了一些复杂的语句功能之后运行时报错,提示匿名函数使用有问题。后来第一个参数直接使用function来包含,这也就是一个匿名函数了,结果正常。这说明该函数的第一个参数最后使用匿名函数,否则容易出漏子。这种使用情形同样适用于setTimeout()函数。
var tim = setInterval(function(){ self.showProgress(version_id); },2000);//延时2秒
----未完待续-----