js相關及fibjs整理

2021-09-07 07:57:03 字數 941 閱讀 4824

簡單提下:

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 將陣列頭部的...