原创 canvas性能-drawImage渲染圖片

canvas性能-繪製圖片 目錄canvas性能-繪製圖片canvas繪製圖片drawImageputImageDatacreatePattern測試繪製耗時drawImageImage類型ImageBitmap類型HTMLCanvasEl

原创 基於windows配置gitlab-runner

基於windows配置gitlab-runner gitlab-runner是配合gitlab ci/cd實現自動化部署的執行者,和Jenkins 類似,可以通過編寫對應的.gitlab-ci.yml執行不同的job腳本。 下面的基於sh

原创 js對flv提取h264、aac音視頻流

FLV提取裏面的h264視頻流 FLV和MP4支持的編碼 流媒體和媒體文件的區別 流媒體是指將一連串的多媒體資料壓縮後,經過互聯網分段發送資料,在互聯網上即時傳輸影音以供觀賞的一種技術與過程,此技術使得資料數據包得以像流水一樣發送,如果不

原创 一個基於canvas的移動端圖片編輯器

歡迎使用 canvas_mobile_drag 項目地址:https://github.com/xiaosu95/canvas_mobile_drag 點擊查看demo(在移動端上查看) 該插件是一款脫離jq的移動端圖片編輯器。可以應用在

原创 js拼接多個音頻文件

js拼接多個音頻文件 想要將多段音頻拼接起來其實很簡單,下面我們將來實現這個需求 1.定義獲取音頻文件Arraybuffer的方法getArraybuffer function getArraybuffer (url) { fetch

原创 css動畫是否會被js阻塞

css動畫是否會被js阻塞 css的動畫部分是會被js阻塞的,不過transform的動畫則不會受影響。 下面舉一個margin-left移動的動畫下,啓動js阻塞動畫的性能圖表 <style> .walkabout-old-schoo

原创 electron上傳符號表到sentry

electron上傳符號表到sentry sentry管理後臺創建API KEY(下圖這裏需要勾選write權限) 根目錄創建.sentryclirc文件 [defaults] url = https://sentry.io/ org

原创 docker安裝sentry

docker安裝sentry ps: 這裏的前置要求是linux機子上已經安裝過docker和docker-compose 首先去sentry的github庫clone https://github.com/getsentry/onp

原创 js遞歸優化

遞歸優化 遞歸在我們平時擼碼中會經常用到,不過可能很多人不知道遞歸的弊端,就是會導致調用棧越來越深。如果沒有節制的使用遞歸可能會導致調用棧溢出。 那什麼是遞歸呢? 遞歸調用是一種特殊的嵌套調用,是某個函數調用自己或者是調用其他函數後再次調

原创 音視頻混流

音視頻混流 之前講過一篇如何通過攝像頭獲取音視頻流並導出的文章。這次要講的是如何將多個音視頻流混合後導出。 主要用的API有: MediaRecorder(提供的用來進行媒體輕鬆錄製的接口) getUserMedia(捕獲攝像頭、麥

原创 JS的發佈訂閱模式

JS的發佈訂閱模式 這裏要說明一下什麼是發佈-訂閱模式 發佈-訂閱模式裏面包含了三個模塊,發佈者,訂閱者和處理中心。這裏處理中心相當於報刊辦事大廳。發佈者相當與某個雜誌負責人,他來中心這注冊一個的雜誌,而訂閱者相當於用戶,我在中心訂閱了

原创 JS繼承的一些見解

# JS繼承的一些見解 > js在es6之前的繼承是五花八門的。而且要在項目中靈活運用面向對象寫法也是有點彆扭,更多的時候還是覺得面向過程的寫法更爲簡單,效率也高。久而久之對js的繼承每隔一段時間就會理解出現困難。所以這次我要把對對象的理

原创 移動端tab滑動和上下拉刷新加載

移動端tab滑動和上下拉刷新加載 查看demo(請在移動端模式下查看) 查看代碼 開發該插件的初衷是,在做一個項目時發現現在實現移動端tab滑動的插件大多基於swiper,swiper的功能太強大而我只要一個小小的tab滑動功能,就要引入

原创 寫一個vue組件

寫一個vue組件 我下面寫的是以.vue結尾的單文件組件的寫法,是基於webpack構建的項目。如果還不知道怎麼用webpack構建一個vue的工程的,可以移步到vue-cli。 一個完整的vue組件會包括一下三個部分: template

原创 js獲取地址欄URL上的參數

獲取地址欄上的URL參數現在最簡單通用的方法應該就是下面這種了。 function getUrlParam (name) { var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)'