2024国产成人精品免费视频|日本免费一区二区三区毛片|久久97超碰色中文字幕|亚洲天堂a中文字幕

jQuery與aardio環(huán)境下內置js沖突問題的解決

2021-04-28 18:50 欄目:技術開發(fā) 查看(6421)

首先介紹下aardio是什么?

其官方的表述是:aardio是專用于桌面軟件快速開發(fā)的新一代混合型編程語言 – 具有動態(tài)語言輕便、靈活的特性,而且又可以同時支持靜態(tài)類型開發(fā),象靜態(tài)語言那樣使用。aardio可以直接支持原生DLL,即使是外部EXE進程中的函數(shù),也可以使用一句代碼聲明為普通的aardio函數(shù)對象( 原生call支持 ),aardio支持非常多的標準調用約定,例如 stdcall,cdecl,thiscall,fastcall,regparm(n) 等調用約定都可以支持。

這玩意筆者之前還不知道是個啥,直到有一個項目做了一部分丟到我們微構網絡這邊,發(fā)現(xiàn)里面就用到了aardio。aardio在這個項目中的作用就是把網頁與本地硬件系統(tǒng)串聯(lián)起來了,如果在標準瀏覽器里面運行網頁是沒辦法直接調用硬件資源的。而通過這個aardio作為橋梁可以實現(xiàn)網頁與本地硬件通信,而對于網頁而言aardio這個時候可以理解為一個微型瀏覽器。對于技術實現(xiàn)方面,跟electron類似,可以用web開發(fā)技術實現(xiàn)桌面軟件開發(fā)。貌似還是個人開發(fā)者開發(fā)的。

aardio中應該是內置了electron,很多人可能會說electron就是非常知名的基于web技術開發(fā)桌面軟件的工具,為什么這個aardio作者還要多此一舉。我猜想他應該是精簡了其他的一些工具,比如基于原版electron開發(fā)的應用是比較大的,而基于aardio開發(fā)的應用最小幾百kb,如果一個小軟件1-2MB就行了。對于小型軟件可能這種工具就有優(yōu)勢了,這可能就是這個項目原來開發(fā)者為啥選用aardio的原因吧。

但在aardio下跟標準瀏覽器還是有區(qū)別的,目前接觸過的各類前端方法,在瀏覽器里面支持的它基本上也支持,然而它自己其實也擴充了一些js之類的東西。以至于在標準瀏覽器下能運行的js庫可能在aardio下卻運行不了。比如使用經典的jquery的網頁在里面運行就會報錯。

QQ截圖20210428183501

應該是其子擴展的一些js庫也使用了跟jquery庫一樣的$符號,其實其他的一些js庫也可能因為這個原因而跟jquery沖突,如知名的社區(qū)BBS軟件自己寫的common.js庫,其他的包括Google Web Toolkit等很多庫其實都用到了$符號。我們可以使用如下代碼實現(xiàn)兼容:

if (typeof module === ‘object’) {window.jQuery = window.$ = module.exports;};

相當于jquery的noConflict()方法。

而且,此代碼應該緊跟jquery庫的引用,否則在它前面引入的其他基于jquery的js庫也可能出現(xiàn)問題,比如如果放在layer.js后面就會報如下錯誤:

Uncaught TypeError: Cannot read property ‘extend’ of undefined

QQ截圖20210428184328

 

與我們的項目經理聯(lián)系
掃二維碼與項目經理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網交流

轉載請注明出處:jQuery與aardio環(huán)境下內置js沖突問題的解決 - 微構網絡
分享:
南召县| 芜湖县| 凤冈县| 安达市| 定西市| 广南县| 牙克石市| 贡山| 扶绥县| 呼和浩特市| 郎溪县| 岐山县| 石狮市| 贵州省| 遵化市| 若羌县| 墨江| 河西区| 商丘市| 安阳县| 宁都县| 阳西县| 昌图县| 蒲江县| 松阳县| 横峰县| 南木林县| 阿克苏市| 永州市| 黄冈市| 花莲市| 宜兴市| 确山县| 曲阳县| 靖边县| 黔南| 新泰市| 咸宁市| 信宜市| 吴旗县| 民和|