關於網路那些事...

網路行銷,SEO,網路趨勢,教學文章,網頁設計,生活時事

注意! Google 為加速推動 Https 普及化,將把http 網站標記不安全警示

Google 安全策略: 您的網站若未使用SSL憑證的將被標記為不安全! Http 網站應全面升級 Htpps 加密連線

Google Chrome 官方部落格發布了一項瀏覽器安全指標,針對先前的一項 HTTP 標記為不安全以移除 Https 安全標示的 計畫書提到:

為什麼要使用 SSL Https 加密呢?

使用 SSL憑證讓網頁支援 Https 加密連線 可以讓使用者避免備中間人竊聽擷取隱私訊息及帳號密碼資訊,應該視為優先策略


如果你喜歡我們的文章內容,請在這裡按個讚



ASP.NET C# 不同瀏覽器在 buffer 緩衝區 與Response.Flush() 表現差異比較

ASP.NET C# 不同瀏覽器在 buffer 緩衝區 與Response.Flush() 表現差異比較

ASP 輸出內容到網頁的方式基本上有兩種

  1. 直接輸出
  2. 緩衝區輸出

直接輸出的方式,每次連線 server 都要執行程式

buffer 緩衝區輸出方式,則首次連線會需要執行程式,程式會將結果放一份在緩衝區,後續連線則是直接從緩衝區讀取數據

緩衝區+大量資料

在 ASP 載入頁面時,若遇到需載入大量內容的情況,若使用到緩衝區

server 端開始載入大量資料時,會需要一段時間將資料一筆一筆放入緩衝區,直到所有數據完成之後,才會在前端頁面產出

此時會耗費較久時間,才會將資料呈現在畫面上

緩衝區資料輸出的時間點

輸出緩衝區資料的方式有兩種: Response.End 或者 Response.Flush

Response.Clear 則是可以清除緩衝區的資料(清除後就無法再送到前端)

Response.Clear 通常都會搭配 Flush 一起使用

使用Flush 預先支出緩衝區內容

這時就可以運用 Response.Flush() 解決等待時間過久的問題

在使用 Response.Flush() 時,要先將 Response.BufferOutput 設定為 true,避免再運行過程中會出現問題

Response.Flush() 可以在資料存取到緩衝區的同時間,立即輸出緩衝區的資料,這時server會持續與頁面保持請求連線,當Flush 拋出資料時,就立即反映在頁面

蒐集瀏覽器資料的處理方式,在不同瀏覽器會有不同處理方式

Chrome, Firefox, Edge 在接收到資料後,就會立即進行渲染,當資料是屬於續傳類型,就會在畫面看到一筆一筆資料逐步出現
須特別留意的是,Firefox, Edge 必須要等到資料為256字元才會真正進行flush輸出緩衝資料
Chrome 則可以做到即時

IE11 則是會等待所有資料都蒐集完畢後,才會一次處理

清除緩衝區資料

透過 Response.Clear() 可以刪除緩衝區所有的內容,使用前同樣要先將 Response.BufferOutput 設定為 true,避免再運行過程中會出現問題

測試

關閉 buffer,直接輸出網頁端,資料畫一筆一筆出現

Response.BufferOutput = false;
Response.Flush();
for (int i = 1; i <= 20; i++)
{
    Response.Write("(" + i.ToString() + ")-abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefg<br/>");//256 以上字元
    System.Threading.Thread.Sleep(400);
}
Response.End();

開啟 buffer,將資料存取在buffer中,等所有程序結束才會輸出瀏覽器

Response.BufferOutput = true;
Response.Flush();
for (int i = 1; i <= 20; i++)
{
    Response.Write("(" + i.ToString() + ")-abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefg<br/>");//256 以上字元
    System.Threading.Thread.Sleep(400);
}
Response.End();

開啟 buffer 且中途進行 flush 與 clear,資料會一筆一筆出現

Response.BufferOutput = true;
Response.Flush();
for (int i = 1; i <= 20; i++)
{
    Response.Write("("+i.ToString()+ ")-abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefg<br/>");//256 以上字元
    Response.Flush();
    Response.Clear();
    System.Threading.Thread.Sleep(400);
}
Response.End();

如果你喜歡我們的文章內容,請在這裡按個讚



用批次檔清除 Windows 暫存檔

在 windows 環境,可以透過批次檔方式一鑑清除暫存檔案,釋放空間

將下列內容儲存為 cleanner.bat


如果你喜歡我們的文章內容,請在這裡按個讚



MySQL - 取得十分鐘內、一小時內、一天內 的資料

MySQL 取得指定分鐘、指定小時或指定天數內的資料

方式介紹:


如果你喜歡我們的文章內容,請在這裡按個讚



股票市場 - LME (London Metal Exchange) 倫敦金屬交易所 簡介

LME 期貨 - Carry trade

LME (London Metal Exchange) 倫敦金屬交易所

提供鋁、銅、鉛、鋅、鎳和錫等期貨交易

(1877~today) 2012-06 被香港以 22 億美元收購


如果你喜歡我們的文章內容,請在這裡按個讚



Git 解決出現 warning: LF will be replaced by CRLF ... The file will have its original line endings in your working directory.

Git 解決出現 warning: LF will be replaced by CRLF ... The file will have its original line endings in your working directory.

在 windows,git add 可能會出現 LF will be replaced by CRLF 錯誤訊息

warning: LF will be replaced by CRLF ... The file will have its original line endings in your working directory.

原因是因為 windows 所使用的換行符號是 CRLF

Git 會在提交的時候為了將換行符號統一,將 CRLF 轉換為 LF,並且會在偵測到需轉換時,會提出警示訊息

若不希望出現此錯誤警示,不要將 CRLF轉換為LF,則可以執行以下指令:

rm -rf .git
git config --global core.autocrlf false
git init
git add .

但原則上,不建議將這個動作關閉

建議可以試試以下作法

git config --global core.autocrlf true
git config --global core.safecrlf true

再將LF轉換為CRLF

[LF轉換為CRLF方法一]

用 NodePad++ 的 [檢視>特殊字元>顯示行尾字元(EOL)]

Ctrl + H 開啟取代功能,選取增強模式(\n,\r,\t,..),並且

搜尋目標 "\r" 取代為空白
搜尋目標 "\n" 取代為"\r\n"

[LF轉換為CRLF方法二]

使用批次刪除方式,一次做完

下載 (DOS2UNIX and UNIX2DOS for Windows)[http://www.bastet.com/uddu.zip] 並且解壓縮到專案根目錄

開啟命令列視窗且輸入以下指令:

for /f %f IN ( 'dir /b /s *.htm *.html *.css *.js *.txt *.cs *.aspx *.svg *.cshtml' ) DO @unix2dos %f

處理完成後,再將 UNIX2DOS.exe 和 UNIX2DOS.c 檔案刪除

https://help.github.com/articles/dealing-with-line-endings/
https://git-scm.com/book/zh/v2/%E8%87%AA%E5%AE%9A%E4%B9%89-Git-%E9%85%8D%E7%BD%AE-Git


如果你喜歡我們的文章內容,請在這裡按個讚



MySQL - 取得平均為 NULL 如何轉為0、以及計算總數方法

MySQL 取得平均級總數的方式,可以直接用現成的方法

AVG 以及 COUNT

這裡會另外再分享一個小技巧,說明如何將 AVG 取得結果為 NULL 如何轉為零


如果你喜歡我們的文章內容,請在這裡按個讚



股票市場 - 選擇權重點介紹 (2)

[投資人的正逆價差]

一般來說,投資人的輸贏都會符合 28 法則

在選擇權的市場中,投資人對未來市場預期可分為:

正價差 - 預期未來會漲,看多
逆價差 - 預期未來會跌,看空

買賣雙方都能接受的交易價格,就稱為均衡價格

因此,要透過選擇權獲利,通常都要有預期盤勢會有大震盪才會有獲利空間

一般股市平穩的期間,只需要買賣期貨即可

或者可以選擇用 賣出買權、賣出賣權 來獲利

[買權 賣權]

不管買權或賣權,通常我們都會選擇買方身分

買權 (CALL Option)
未來看漲
- 買方 (買進買權 LONG CALL) : 可以在未來購買特定價格的權力 做多
- 賣方 (賣出買權 SHORT CALL) : 必須履行「賣出」「空頭期貨合約」的義務 放空

賣權 (PUT Option)
未來看空
- 買方 (買進賣權 LONG PUT) : 可以在未來賣出特定價格的權力 做空
- 賣方 (賣出賣權 SHORT PUT): 必須履行「買入」「多頭期貨合約」的義務 做多

買權(CALL) 賣權(PUT)
選擇權買方 付出權利金,取得未來買入指定價位股票權力,未來股價上漲即獲利
單次獲利金額高
獲利機率較低
若虧損,頂多賠掉權利金
付出權利金,取得未來賣出指定價位股票權力,未來股價下跌即獲利
單次獲利金額低
獲利機率較大
若虧損,金額較大
選擇權賣方 收取權利金,未來須保證買進履約指定價位股票,未來股價下跌即獲利
單次獲利金額高
獲利機率較低
若虧損,頂多賠掉權利金
收取權利金,未來須保證賣出履約指定價位股票,未來股價上漲即獲利
單次獲利金額低
獲利機率較大
若虧損,金額較大

[權利金(Premium)與保證金]

權利金會受到履約價影響,以CALL為例,買低權利金就高
以PUT為例,賣高(用比較高去放空)權利金就高

買方(買入CALL或PUT的一方) 要繳交權利金給賣方,無論買方是否執行權力,權利金皆不退還。
賣方要繳交保證金,確保會履行契約

一般聽到收淨額權利金 20 點,1點為50元,因此一口權利金則為 1000 元(不包括交易成本)

[履約價]

履約價綁定的成交價為,有範圍限制

即: 當期的指數走勢最高點及最低點(以百為基準),再加 上下 500 點

[正價差]

若普遍看好未來會漲,買方都會為了搶奪,都會願意主動抬價,搶先買到選擇權

就會有成交價上漲,帶動盤勢上漲的情況

[逆價差]

當未來普遍看跌,賣方就會主動降價,想盡辦法讓買方願意購買契約

成交價會因此下跌,讓盤勢跟著下跌

在選擇權市場中,當契約成立,都要繳交權利金

[每日結算價]

每日結算價: (收盤前30分鐘的成交價 + 最後一筆成交價) 再取平均值

[履約價]

履約價就是,雙方在結算到期,都應執行的價格

[選擇權價值]

選擇權價值=內含價值+時間價值

買權(CALL) = 內含價值(Ce) + 時間價值(Ct)
賣權(PUT) = 內含價值(Pe) + 時間價值(Pt)

舉例:
現在
目前股市 6600 點,買(6400C) ,假設時間價值為 30 點
選擇權市價(6400C) = 6600 - 6400 + 30點 = 230 點
因此,在當下要以 230 點買下 (6400C)

3天後
股市 6710 點,時間價值為 21 點
選擇權市價(6400C) = 6710 - 6400 + 21點 = 331 點

此時簡單結算獲利即 ( 331點 - 230點 )*50 = 5050元

若評估此時已是最高獲利,都可以隨時進行平倉(反向沖銷)

[內含價值 (Intrinsic Value)]

內含價值就是履約價值(Strike Value)

價內時,意思是這張契約有獲利,內含價值即獲利。
價平或價外,因為都沒有履約價值,內含價值為0

對於買權賣權來說,內含價值意義不同

買權(CALL) 內含價值(Ce) = 最初價格 - 履約價格

賣權(PUT) 內含價值(Pe) = 履約價格 - 最初價格

[時間價值 (Time Value)]

對選擇權來說,購買長時間的契約, 時間價值(TV)高,購買的權利金就會越貴

例如,股價由 100 漲到 105 ,履約時間越長,就越有機會朝自己有利的方向調整

若是履約時間較短,也就是越接近到期日,權利金會比較便宜

選擇權在到期日當天,時間價值為0

繼續>> 股票市場 - 選擇權重點介紹(1)


如果你喜歡我們的文章內容,請在這裡按個讚



ASP.NET C# - URL 網址參數解析,取得網址參數

ASP.NET C# URL 網址參數解析,取得網址參數

ASP.NET 提供許多 Request 屬性,可以對URL進行分析,取得網址參數

例如,這裡示範網址為:

https://my.url.com:8080/Detail/Page/List.aspx/showmore?mid=20#main

底下分別列出解屬性及解析結果:

參數 結果
Request.ApplicationPath /
Request.Url.Host my.url.com
Request.Url.Port 8080
Request.Url.Scheme https
Request.Url.Authority my.url.com:8080
Request.Path /Detail/Page/List.aspx/showmore
Request.Url.LocalPath /Detail/Page/List.aspx/showmore
Request.PathInfo /showmore
Request.Url.Query ?mid=20
Request.CurrentExecutionFilePath /Detail/Page/List.aspx
Request.FilePath /Detail/Page/List.aspx
Request.RawUrl /Detail/Page/List.aspx/showmore?mid=20
Request.Url.PathAndQuery /Detail/Page/List.aspx/showmore?mid=20
Request.Url.AbsoluteUri https://my.url.com:8080/Detail/Page/List.aspx/showmore?mid=20
Request.Url.AbsolutePath /Detail/Page/List.aspx/showmore

取得系統路徑

參數 結果
Request.PhysicalPath C:\wwwroot\Detail\Page\List.aspx
System.IO.Path.GetDirectoryName(Request.PhysicalPath) C:\wwwroot\Detail\Page
Request.PhysicalApplicationPath C:\wwwroot\
System.IO.Path.GetFileName(Request.PhysicalPath) List.aspx

解析參數

參數 結果
Request.Url.Segments /, Detail/, Page/, List.aspx/, showmore

如果你喜歡我們的文章內容,請在這裡按個讚



ASP.NET HTML (UrlEncode, UrlDecode, HtmlEncode, HtmlDecode)相關編碼方法

ASP.NET HTML相關編碼方法

ASP.NET 針對HTML相關的編碼,可以分成網址編碼、網頁內容編碼兩部分

這裡分別記錄這些常見的編碼方式,提供參考


如果你喜歡我們的文章內容,請在這裡按個讚