在Web開發(fā)中,我們經(jīng)常使用SeaJS來加載JavaScript模塊,SeaJS以其高效、簡單、易用的特性廣受開發(fā)者的歡迎。但是,在使用SeaJS加載CSS模塊時,我們可能會遇到加載失敗的情況,下面來看一下解決方法。
define(function(require) { var $ = require('jquery'); require('style.css'); // ... });
在以上代碼中,我們使用SeaJS加載了jQuery和“style.css”兩個模塊,然而在實際使用中,我們可能會發(fā)現(xiàn)CSS沒有生效,這是為什么呢?
其原因在于SeaJS默認是通過創(chuàng)建link標簽的形式加載CSS文件的,而瀏覽器加載CSS是異步的,所以當JavaScript試圖去讀取新引入的CSS樣式時,很可能還沒有加載完成,導致樣式未生效。
既然我們已經(jīng)了解了問題的原因,解決方法就很簡單了,需要在SeaJS的配置中添加“style”模塊標識符,并且定義加載該模塊的方式為使用“插入樣式”的方式,如下代碼所示:
seajs.config({ map: [ [ /^(.*\.(?:css|js))(.*)$/i, '$1?v=2.0' ] ], preload: ['style'] });
通過以上配置,SeaJS在加載CSS文件時,就會使用插入樣式的方式,保證CSS文件的加載與JavaScript的執(zhí)行是同步進行的,問題也就迎刃而解了。