當前位置:首頁 » 編程軟體 » js多大編譯會慢

js多大編譯會慢

發布時間: 2022-10-16 09:31:55

㈠ js代碼的JS代碼在優化中:

一、 讓代碼簡潔:一些簡略的表達方式也會產生很好的優化
eg:x=x+1;在不影響功能的情況下可以簡寫為x++;
二、 變數名方法名盡量在不影響語意的情況下簡單。(可以選擇首字母命名)
eg:定義數組的長度可以取名為:ArrLen而不需要取為ArrayLength。
三、 關於JS的循環,循環是一種常用的流程式控制制。
JS提供了三種循環:for(;;)、while()、for(in)。在這三種循環中for(in)的效率最差,因為它需要查詢Hash鍵,因此應盡量少用for(in)循環,for(;;)、while()循環的性能基本持平。當然,推薦使用for循環,如果循環變數遞增或遞減,不要單獨對循環變數賦值,而應該使用嵌套的++或–運算符。
四、 如果需要遍歷數組,應該先緩存數組長度,將數組長度放入局部變數中,避免多次查詢數組長度。
因為我們常常要根據字元串、數組的長度進行循環,而通常這個長度是不變的,比如每次查詢a.length,就要額外進行一個操作,而預先把var len=a.length,則就少了一次查詢。
五、 盡量選用局部變數而不是全局變數。
局部變數的訪問速度要比全局變數的訪問速度更快,因為全局變數其實是window對象的成員,而局部變數是放在函數的棧里的。
六、 盡量少使用eval。
每次使用eval需要消耗大量時間,這時候使用JS所支持的閉包可以實現函數模板。
七、 減少對象查找
因為javaScript的解釋性,所以a.b.c.d.e,需要進行至少4次查詢操作,先檢查a再檢查a中的b,再檢查b中的c,如此往下。所以如果這樣的表達式重復出現,只要可能,應該盡量少出現這樣的表達式,可以利用局部變數,把它放入一個臨時的地方進行查詢。
八、 字元串連接。
如果是追加字元串,最好使用s+=anotherStr操作,而不是要使用s=s+anotherStr。
如果要連接多個字元串,應該少使用+=,如s+=a;s+=b;s+=c;應該寫成s+=a + b + c;
而如果是收集字元串,比如多次對同一個字元串進行+=操作的話,最好使用一個緩存。怎麼用呢?使用JavaScript數組來收集,最後使用join方法連接起來,如下
var buf = new Array();for(var i = 0; i < 100; i++){ buf.push(i.toString());}var all = buf.join("");
九、 類型轉換
1. 把數字轉換成字元串,應用"" + 1,雖然看起來比較丑一點,但事實上這個效率是最高的,性能上來說:("" +) > String() > .toString() > new String()
盡量使用編譯時就能使用的內部操作要比運行時使用的用戶操作要快。
String()屬於內部函數,所以速度很快,而.toString()要查詢原型中的函數,所以速度遜色一些,new String()用於返回一個精確的副本。
2. 浮點數轉換成整型,這個更容易出錯,很多人喜歡使用parseInt(),其實parseInt()是用於將字元串轉換成數字,而不是浮點數和整型之間的轉換,我們應該使用Math.floor()或者Math.round()。Math是內部對象,所以Math.floor()其實並沒有多少查詢方法和調用的時間,速度是最快的。
3. 對於自定義的對象,如果定義了toString()方法來進行類型轉換的話,推薦顯式調用toString(),因為內部的操作在嘗試所有可能性之後,會嘗試對象的toString()方法嘗試能否轉化為String,所以直接調用這個方法效率會更高
十、 盡量作用JSON格式來創建對象,而不是var obj=new Object()方法。
因為前者是直接復制,而後者需要調用構造器,因而前者的性能更好。
十一、 當需要使用數組時,也盡量使用JSON格式的語法,
使用JSON格式的語法即直接使用如下語法定義數組:[parrm,param,param...],而不是採用new Array(parrm,param,param...)這種語法。因為使用JSON格式的語法是引擎直接解釋的。而後者則需要調用Array的構造器。
十二、 對字元串進行循環操作,例如替換、查找,就使用正則表達式。
因為JS的循環速度比較慢,而正則表達式的操作是用C寫成的API,性能比較好。
十三、 插入HTML
很多人喜歡在JavaScript中使用document.write來給頁面生成內容。事實上這樣的效率較低,如果需要直接插入HTML,可以找一個容器元素,比如指定一個div或者span,並設置他們的innerHTML來將自己的HTML代碼插入到頁面中。
十四、 對象查詢
使用[「」]查詢要比.items()更快
十五、 定時器
如果針對的是不斷運行的代碼,不應該使用setTimeout,而應該是用setInterval。setTimeout每次要重新設置一個定時器。
十六、 盡量減少DOM調用
在Web開發中,JavaScript的一個很重要的作用就是對DOM進行操作。可是對DOM的操作是非常昂貴的,因為這會導致瀏覽器執行迴流 (reflow)操作。我們應該盡可能的減少DOM操作。

㈡ 我寫的js函數執行很慢,有的時候效果還出不來,希望解決一下

先把項目重新編譯一次,
然後設置一下瀏覽器,
每次頁面讀取都重新檢查。
然後清空一下
瀏覽器緩存

如果還不行。
可以吧代碼貼上來看看。

㈢ 網站中有三個js文件大小超過100KB,超級影響載入速度,想問怎樣優化

1. 將你的JS文件進行壓縮,網路一下,工具一把
2. 伺服器端開啟gzip壓縮
3. 如果你是3個單獨的JS,那麼你可以合成1個文件,減少請求次數
4. 將你的<script>標簽寫在頁面底部<body>標簽結束之前
5. 檢查你的js中是否存在特別耗時的邏輯,因為腳本載入時阻塞式的,它會載入完並執行完之後,才會載入其它資源,因此慢並不一定是文件大,也可能是文件執行花了很長時間
6. 如果還是覺得很慢,你可以使用動態載入,不要直接在頁面中寫<script>標簽,而是動態創建一個<script>將該腳本引進來,這樣的載入方式是非阻塞式的,不會影響其它資源載入。
7. 上面方法全用了,還是覺得很慢,那你應該檢查你的伺服器和網路情況,因為按理來說100多kb的腳本不至於慢到不可接受的地步。
8. 將頁面中的資源分散到多個一級或二級域名,因為瀏覽器對同一個域名同時載入的資源數量是有限制的
9. 如果你還是覺得很慢,那就玩些高級玩意兒吧(如使用CDN加速等)
10. 上面方法都試過,還是不奏效?那我也沒轍了,除非能現場分析。

㈣ 請高手解釋下為什麼Javascript是一種解釋性語言,不需要進行編譯和構建.在看Jquery的書,有句話是這樣說的

解釋執行主要是針對編譯執行編譯執行來說的,C語言,java等靜態語言,寫好代碼後需要經過編譯器編譯,將源代碼編譯成別的代碼,比如機器碼,匯編等,解釋執行則不需要編譯過程,直接由解釋器解析並執行代碼。
javascript就屬於解釋執行,所以說他是一種解釋性語言。
但是,隨著技術的發展,越來越多的javascript引擎為了提高性能,也會對javascript進行一些編譯,所以也很難清楚的界定javascript到底是解釋執行還是編譯執行。所以也沒必要去深究,知道就行。

㈤ javascript會拖慢網頁速度嗎

正常情況下會的,載入js必然會佔用一定時間,但是有辦法可以解決,比如這樣:
把通常載入方式:
<script src="xxxx.js"></script>
改變成:
<script type="text/javascript">
document.write("<scr"+"ipt src=\"xxx.js\"></sc"+"ript>")
</script>

㈥ javascript可以用某種手段編譯成一個二進制可執行文件嗎

你可以把腳本用二進制方式寫進圖片或者視頻里,但是這個東西對於網站的過濾來說,會變得很復雜。加入我在圖片里插入了惡意腳本,你還允許我上傳到伺服器。那伺服器就有可能被我通過那段惡意代碼控制。
你寫好一段js腳本,把它以二進制的方式添加到圖片里,圖片裡面的圖片類型要保留,然後加入/* xxxx */來注釋掉圖片內容。
在<script src=''><script>,src屬性可以指定圖片。

㈦ 為什麼我寫的JS運行起來很緩慢

js代碼執行速度 很大程度上依賴瀏覽器的引擎 不同瀏覽器跑 速度可能會差很多
然後就是演算法的時間復雜度 和處理的數據量
還有就是多次操作dom也相當耗時

你要分析下你的代碼慢的原因
是循環套循環了?
還是說邏輯太復雜了

如果多次操作dom 導致頁面reflow次數過多
渲染次數過多 也可能給你感覺很慢

㈧ js現在可以直接編譯嗎

JavaScript是腳本語言,依靠瀏覽器等解析,不需要像Java後台語言預編譯。

㈨ 請教一些Nodejs 編譯安裝時遇到的問題

windows平台的話,安裝的路徑最好按默認的來搞,否則後期安裝全局的模塊,稍不注意會帶來很多不便。安裝完之後把nodejs的安裝目錄設置在環境變數里,以便在任何地方都能使用node的各種命令,這其中包括npm install xxx和node xx.js
一個環境搭建折騰了好幾天。一是公司許可權問題,二是網路問題,你懂得。
Ionic 環境搭建官網有教程。本來幾行命令就能搞定的事,一旦遇到網路問題,就蛋疼了。慢的要死
Ionic 框架簡單了解了一下,由於是基於Anjular.js的,擁有Anjular.js的一些獨有特性。比之前接觸過的JS ,jQuery ,jQueryMobile要強大且方便的多。
安裝ionic 框架,正常流程官網有詳細介紹,如果人品較好,分分鍾鍾就搞好了,還有一種情況,像我這樣悲催,網路問題,試了幾十遍還是沒成功。
好在最後用了比較給力的網,折騰一周才搞定。

熱點內容
如何評價一個伺服器的性能 發布:2025-05-17 23:40:53 瀏覽:270
淘寶客適合什麼伺服器 發布:2025-05-17 23:39:26 瀏覽:612
python循環文件 發布:2025-05-17 23:39:22 瀏覽:828
androidstudio更新 發布:2025-05-17 23:38:22 瀏覽:643
java項目面試 發布:2025-05-17 23:30:53 瀏覽:780
若主存儲器按位元組編址 發布:2025-05-17 23:30:46 瀏覽:24
kotlinandroid 發布:2025-05-17 23:19:09 瀏覽:974
雲編程英語 發布:2025-05-17 23:18:34 瀏覽:623
androidstudio導入類 發布:2025-05-17 23:15:36 瀏覽:237
私人電腦伺服器如何設置 發布:2025-05-17 23:14:48 瀏覽:366