当前位置: 首页 > Web前端 > JavaScript

关于javascript运行机制

时间:2023-03-27 00:54:56 JavaScript

鐞嗚Вjs鐨勮繍琛屾満鍒讹紝闇€瑕佷粠娴忚鍣ㄨ璧凤紝娴忚鍣ㄦ槸澶氳繘绋嬬殑銆傛瘡鎵撳紑涓€涓猅ab椤碉紝灏辩浉褰撲簬鍒涘缓浜嗕竴涓嫭绔嬬殑娴忚鍣ㄨ繘绋嬨€傛祻瑙堝櫒鍖呭惈鍝簺杩涚▼锛?銆佹祻瑙堝櫒杩涚▼锛氭祻瑙堝櫒鐨勪富杩涚▼锛屽彧鏈変竴涓紙鍗忚皟銆佷富鎺э級2銆佹彃浠惰繘绋?銆丟PU杩涚▼4銆佹祻瑙堝櫒娓叉煋杩涚▼锛堟祻瑙堝櫒鍐呮牳銆侀〉闈㈡覆鏌撱€佽剼鏈墽琛屻€佷簨浠跺鐞嗐€佺瓑锛夊墠绔紑鍙戜富瑕佸叧娉ㄦ覆鏌撹繃绋嬶紙濡倃ebkit锛夈€傛覆鏌撹繃绋嬫槸澶氱嚎绋嬬殑銆侴UI娓叉煋绾跨▼璐熻矗瑙f瀽HTML銆丆SS銆佹瀯寤篋OM鏍戝拰RenderObject鏍戙€佸竷灞€鍜岀粯鍒躲€傪煔桱S寮曟搸绾跨▼锛堝v8锛塉S寮曟搸绾跨▼璐熻矗瑙f瀽Javascript鉁擥UI娓叉煋绾跨▼鍜孞S寮曟搸绾跨▼鏄簰鏂ョ殑锛堢敱浜庤繖涓壒鎬э紝濡傛灉js鎵ц浜嬩欢鏃堕棿杩囬暱锛屼細瀵艰嚧椤甸潰娓叉煋涓嶆祦鐣咃紝瀵艰嚧椤甸潰娓叉煋闃诲锛屾樉绀哄櫒鍒锋柊60hz锛屾瘡甯?6ms锛屽繀椤诲湪16ms鍐呰繍琛宩s娓叉煋瀹屾垚锛夝煔椾簨浠惰Е鍙戠嚎绋?.杩欎釜绾跨▼涓嶆槸webkit锛屽睘浜庢祻瑙堝櫒骞冲彴锛屽畠鏄簨浠跺惊鐜殑涓€涓噸瑕佹牳蹇僥ventloop2.濡傛灉浜嬩欢婊¤冻瑙﹀彂鏉′欢锛岃繖涓嚎绋嬩細鎶婂搴旂殑浠诲姟娣诲姞鍒颁簨浠堕槦鍒椾腑锛堜緥瀛愶細榧犳爣鐐瑰嚮锛孉JAX璇锋眰锛夝煔楀畾鏃惰Е鍙戠嚎绋?.setInterval鍜宻etInterval鎵€鍦ㄧ殑绾跨▼setTimeout浣嶄簬2.杩?涓畾鏃跺櫒涓嶆槸js寮曟搸鎿嶄綔鐨?.璁℃椂鍚庡姞鍏ヤ簨浠堕槦鍒楌煔桯TTP璇锋眰绾跨▼1.鍦ㄨ繛鎺MLHttpRequest鍚庯紝閫氳繃娴忚鍣ㄥ紑鍚柊鐨勭嚎绋嬭姹?.鍥炶皟鍑芥暟褰撶姸鎬佹敼鍙樻椂锛孹MLHttpRequest瀵硅薄涓婄殑绂诲瓙琚斁鍏ヤ簨浠堕槦鍒椼€備粠EventLoop鍒癑S杩愯鏈哄埗1.javascript鏄崟绾跨▼鐨?.javascript杩愯鍒嗕负鍚屾浠诲姟鍜屽紓姝ヤ换鍔?.鍚屾浠诲姟鍦╦s鐨勪富绾跨▼涓婃墽琛?.浜嬩欢瑙﹀彂绾跨▼绠$悊浠诲姟闃熷垪鎵ц瀹忔墽琛屽畬鎴愬悗浠诲姟闃熷垪鐨勪换鍔″拰寰换鍔°€?.瀹忎换鍔℃槸鎵ц鏍堟瘡娆℃墽琛岀殑浠g爜閮芥槸瀹忎换鍔★紙鍖呮嫭姣忔浠庝簨浠堕槦鍒椾腑鑾峰彇浜嬩欢鍥炶皟鏀惧叆鎵ц鏍堟墽琛岋級2.寰换鍔℃槸绔嬪嵆鎵ц鐨勪换鍔″綋鍓嶅悓姝ヤ换鍔℃墽琛屽悗銆傪煣у畯浠诲姟鐢卞畾鏃惰Е鍙戠嚎绋嬨€乭ttp璇锋眰绾跨▼鍒涘缓锛屽畯浠诲姟鐢变簨浠惰Е鍙戠嚎绋嬬淮鎶ゃ€傪煣у井浠诲姟鐢盨寮曟搸绾跨▼鎿嶄綔銆備换鍔¢槦鍒楁墽琛屽畬鎴愬悗锛屼細鎵ц瀹忎换鍔°€侻DN涔嬫墍浠ヤ細鍦ㄤ笅闈㈣繖娈佃瘽涓皟鐢ㄤ簨浠跺惊鐜紝鏄洜涓哄畠鐨勫疄鐜版柟寮忓線寰€绫讳技浜庝笅闈㈣繖鏍凤細while(queue.waitForMessage()){queue.processNextMessage();}queue.waitForMessage()浼氬悓姝ョ瓑寰呮秷鎭埌杈撅紙濡傛灉褰撳墠娌℃湁娑堟伅绛夊緟澶勭悊锛夛紝鐤媯寰幆杩愯锛岀瓑寰呮秷鎭紝杩愯.杩欏氨鏄祻瑙堝櫒鍦ㄥ叾鑳屽悗鎵€鍋氱殑浜嬫儏銆傛垜涓嶆槑鐧?/p>