。emmm,不存在的。做不到的。
但是,你可以繼續往下閱讀,或許能實現你想要的功能。
前言:一般我們需要用js來實現文件讀寫,都是一些比較小的,離線的應用(因為如果可以聯網,什么json什么db都任意操作再也沒那么多麻煩事情了)。
但是,就是只能離線,還就想要把js運行過程中生產的數據保存到文本文件中,要怎么辦呢?
js是不能直接讀寫文件的。我先下面要介紹的方法,只能實現把數據存下來(或許稱之為下載比較合適),沒辦法直接讀取文件,一般的數據都需要直接寫死在js中。
正文:我介紹一個js文件:debugout.js
它可以實現:把js中的數據,通過日志輸出,然后再把日志文件下載下來。
怎么用?
跟普通的console.log()類似。我們用它來代替console.log().
首先定義一個全局的
var bugout = new debugout();
然后在需要日志輸出的地方:
// console.log("已中獎:" + targeted) 這個就不需要啦 bugout.log("已中獎:" + targeted);
最后,完成數據的生產,在需要下載數據的地方:
bugout.downloadLog();
瀏覽器就會自動下載日志文件。下載的路徑就跟你用瀏覽器下載別的文件是一樣的。以上就是實現了基本的功能。
(ps:同時,在console中,也會像普通的console.log()一樣有輸出哦,因為在調用log方法的時候,也執行了以下語句:)
if (self.realTimeLoggingOn) console.log(obj);
除此之外,介紹一下別的功能。
emm,先寫作業,有空再介紹。。。
——————————
作業寫完啦~
接着介紹吧。
打開js文件,可以看到我們可以使用這些方法。
this.log = function(obj)
用於日志輸出(相當於console.log的功能),同時把日志信息追加到local數據緩沖區。
this.clear = function()
清除日志。是指把數據緩沖區的日志清除掉,不會影響控制台console的輸出。也就是說,之前log到緩沖區的數據,不想要了,可以用clear清除(清除所有的數據哦)。
this.getSlice = function(lineNumber, numLines)
這個方法的作用是返回數據緩沖區的數據。指定數據的起始行(下標從0開始)和數據行數。(意思是這個意思,但是實際測試時候,起始行需要注意,你的log是從第三行開始,也即起始下標為2)。比如:bugout.getSlice(3,3)。返回的是從第四行數據開始的三行數據。下圖中,“”我是日志66“”實際上是數據緩沖區的第三行(下標為2)的數據。所以linenumber是按照下標來的。
this.search = function(string)
從所有log進去的數據行中搜索,並返回包含查詢字符串的行。例如:
this.tail = function(numLines)
emmm熟悉python熟悉linux等等都知道tail干嘛的。對,沒錯,就是你想的那樣。返回最后n行數據。
this.getLog = function()
返回所有的log數據。我們可以看一下截圖,就會發現有用的東西。
是的,下標為1和7的行是空行。
//最后說這個 this.downloadLog = function()
調用自動下載
先知道怎么用,有時間過來研究怎么實現的。
參考鏈接:https://segmentfault.com/a/1190000009426931
歡迎關注微信公眾號“ **IT客**“ ,投稿郵箱 itkeyy@163.com