簡單提下:
js載入順序,從上到下,依次載入(頁面也是)
js都是單執行緒。
fibjs官網
上面也是選擇fibjs的重要原因,非同步呼叫複雜,頻繁非同步處理還有效能問題。
下面介紹下基於fibjs工作的三個執行緒:
v8執行緒:也可以說是主線程,因為js是單執行緒,所以由它進行載入和處理邏輯**(就是跑js)。
i/0等執行緒(也有操作sql的執行緒):根據字面意思就很容易理解,進行i/o或sql操作。
工作執行緒:專門用來讀fibjs模組的執行緒,具體的看fibjs官網。
再說下基於fibjs實現偽併發問題,簡單舉個栗子:
在三個js檔案裡,變數i=0都進行++操作,沒有問題,結果都是1。(可以當它是區域性變數)
但是在同一檔案裡三次呼叫i,不出意外結果是1,2,3,這是業務需要i變為3,2,1;該如何做呢?
這裡介紹下fibjs工作的程序切換順序:v8執行緒跑js,當遇到i/o或者工作執行緒時,進行執行緒切換,同時釋放v8,由其他js執行(這就是偽併發)。
這是我們接著實現上面的i,在第一次第二次操作i之前先呼叫一下i/o操作,這時依次返回第二次第一次,就得到結果321,你肯定會說,那也可以出現很多其他的結果啊,對的,它可以應用不同的業務場景。
上面介紹的都是fibjs裡需要注意的事項和一些重點,感興趣的大佬可以詳情檢視官網。
最後,簡單說下fibjs寫小型應用還是很快的,而且需要安裝配置啥環境,下下來直接用,這點很nice,但是遇到高併發、大資料等專案應用還是有點不夠的。。。
js 字串相關方法整理
一.字串切割與提取 1.slice start,end 兩個引數可正可負,負值代表從右擷取 var mystr hello world var slicestr1 mystr.slice 3 ld var slicestr2 mystr.slice 3,1 ld var slicestr3 myst...
js定義陣列及相關操作
陣列有四種定義的方式 使用建構函式 var a new array var b new array 8 var c new array first second third 或者陣列直接量 var d first second third 屬性 array只有乙個屬性,就是length,length...
js定義陣列及相關操作
陣列的length屬性是可寫的,這是乙個非常有意思的屬性,我們可以通過這種方法來擷取陣列 方法 這裡並沒有包括ie和ff並不相容的一些方法 tostring 把陣列轉換成乙個字串 tolocalestring 把陣列轉換成乙個字串 join 把陣列轉換成乙個用符號連線的字串 shift 將陣列頭部的...