搭著公車 坐到台北車站
在這非假日的星期一
涼爽的天氣 到哪裡都舒服
想到要吃牛肉麵
網路上 google找到的良品牛肉麵
好好吃
再買杯咖啡 跟著他去找同學探班
散步在重慶南路上
逛逛書店 說說話
再回到台北 過去的灰色 已經不再
該回去了
2017年11月27日 星期一
2017年10月2日 星期一
iscroll click設定對各html tag的動作影響
iscroll option的clcik設定值,預設為false
1.當click=true
div與a ,click都會被觸發
input radio或input checkbox則會變的無作用
button則會被觸發兩次
2.當click=false
div與a click皆不會被觸發
input radio或input checkbox可以有作用
button會正常被觸發一次
若要讓iscroll內既要讓div可以click
又要讓radio 可以使用
則需要將click設定為false
並必須設定
preventDefaultException= {tagName:/.*/}
但不建議使用
因為在一些硬體沒那麼好的mobile device上
效能變很差
1.當click=true
div與a ,click都會被觸發
input radio或input checkbox則會變的無作用
button則會被觸發兩次
2.當click=false
div與a click皆不會被觸發
input radio或input checkbox可以有作用
button會正常被觸發一次
若要讓iscroll內既要讓div可以click
又要讓radio 可以使用
則需要將click設定為false
並必須設定
preventDefaultException= {tagName:/.*/}
但不建議使用
因為在一些硬體沒那麼好的mobile device上
效能變很差
2017年10月1日 星期日
修正nginx upstream後無法取得真正client ip
把nodejs服務放在nginx後面用upstream來跑
發現要取得client real ip常常都是取到127.0.0.1
修正方式
1.nginx設定
在locate 區塊加上
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
2.ndojs用
使用 req.headers['x-forwarded-for'] 取得client ip
發現要取得client real ip常常都是取到127.0.0.1
修正方式
1.nginx設定
在locate 區塊加上
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
2.ndojs用
使用 req.headers['x-forwarded-for'] 取得client ip
2017年9月4日 星期一
Object.defineProperty 覆寫已存在屬性
利用 Object.defineProperty可以為指定的
物件加上自訂的屬性資料
但在較舊的瀏覽器上若對已經存在的屬性去做重新設定則會發生錯誤
例 要在fn物件加上一個name的屬性
如果改用其他property name 則可正常運作
例
物件加上自訂的屬性資料
但在較舊的瀏覽器上若對已經存在的屬性去做重新設定則會發生錯誤
例 要在fn物件加上一個name的屬性
Object.defineProperty(fn, "name", { value: 'testName'})
這在android 4.x版預設的瀏覽器上會發生錯誤如果改用其他property name 則可正常運作
例
Object.defineProperty(fn, "fnName", { value: 'testName'})
2017年8月29日 星期二
使用pkg 建立nodejs執行檔
利用pkg可以把nodejs專案封裝成跨平台的執行檔案
就可以發布單一檔案給個測試平台
不過有幾點需要注意
1.es6轉換
新版本的nodejs,可以直接運行es6
不過要使用pkg須先透過babel轉成es5
2.透過pkg設定將其他的檔案封裝到執行檔內
通常透過程式裡的require,會將相依的檔案封裝到
應用程式內
但若有其他如圖檔,css或其他js script要強制封裝進去
可以透過在package.json內設定pkg來載入
若設定了則需要透過pkg . 或 pkg package.json指令
讓pkg知道要另外封裝這些檔案
pkg網址
package.json檔案範例
就可以發布單一檔案給個測試平台
不過有幾點需要注意
1.es6轉換
新版本的nodejs,可以直接運行es6
不過要使用pkg須先透過babel轉成es5
2.透過pkg設定將其他的檔案封裝到執行檔內
通常透過程式裡的require,會將相依的檔案封裝到
應用程式內
但若有其他如圖檔,css或其他js script要強制封裝進去
可以透過在package.json內設定pkg來載入
若設定了則需要透過pkg . 或 pkg package.json指令
讓pkg知道要另外封裝這些檔案
pkg網址
package.json檔案範例
{
"name": "simplesocket",
"version": "1.0.0",
"description": "build simple socket server excute file for web",
"main": "lib/index.js",
"bin": "lib/index.js",
"scripts": {
"start": "babel -s inline -d lib -w src | nodemon lib/index.js",
"build": "pkg package.json --target node8-macos-x64,node8-win-x86 --out-dir output",
"prepublish": "node_modules/babel-cli/bin/babel.js src --out-dir lib"
},
"babel": {
"presets": [
"es2015"
]
},
"pkg": {
"scripts":"node_modules/extra../**/*.js"
},
"repository": {
"type": "git",
"url": "git+https://github.com/ozzysun/simpleSocket.git"
},
"keywords": [
"socketio",
"express",
"pkg"
],
"author": "ozzysun",
"license": "ISC",
"bugs": {
"url": "https://github.com/ozzysun/simpleSocket/issues"
},
"homepage": "https://github.com/ozzysun/simpleSocket#readme",
"dependencies": {
...
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-core": "^6.26.0",
"babel-preset-es2015": "^6.24.1",
"nodemon": "^1.11.0"
}
}
訂閱:
文章 (Atom)