Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

月份: 2014 年 9 月

Vim Arrow Key Alias

Posted on 2014 年 9 月 28 日2021 年 3 月 12 日 By 日落 在〈Vim Arrow Key Alias〉中尚無留言
Vim Arrow Key Alias

每次用 autocomplepop 都會覺得右有要移動到方向鍵才能選字實在麻煩。

於是開使加了一些 short keys 讓操作簡單一底,二隻手也可以盡量不宜開主鍵盤區域。

在 .vimrc 中加入 maping,來取帶 arrow 按鍵:

imap <C-J> <Down>
imap <C-K> <Up>

這樣編輯時跳出選字方塊時,變可以使用 Ctrl + J or K 來上下選字。

Tags:Vim

Post/Redirect/Get Pattern

Posted on 2014 年 9 月 14 日2022 年 7 月 16 日 By 日落 在〈Post/Redirect/Get Pattern〉中尚無留言

Post/Redirect/Get (PRG) pattern 是一種處理表單資料的流程,可以防止使用者回上一頁、或是使用重新整理的方式重複送出表單資料。

再拿留言板舉例 (萬年題材 XD),假設在 form.html 填寫完表單,送出到資料到 post.php,而 post.php 處理資料後直接將結果顯示出來 (傳回 HTML),這個時候再瀏覽器按下「重新整理」按鈕,變會看到提示訊息,詢問是否要重送表單內容。

此時若重送表單資料,則會重新送出一模一樣的內容,若 post.php 沒有特別檢查,就會重複處理。很久以前開心農場就是用這種方法洗禮物的。

為了避免瀏覽器可以重新整理頁面,將資料處理的流程稍微做個調整:

  1. form.html 設定 submit 後,表單資料送給 post.php 處理
  2. post.php 處理資料後,不直接顯示 HTML,只送出 HTTP 3xx 做重新導向,跳到 done.php 顯示處理結果
  3. done.php 透過 URL 參數,顯示相對應的訊息

post.php 寫法大致如下:

if(saveData($_POST)){
   $status = 'ok';
}else{
   $status = 'error';
}

header('Location: done.php?status=' . $status);

由於使用 HTTP 3xx 重新導向,瀏覽器不會將 post.php 紀錄到瀏覽紀錄中,按下「上一頁」按鈕也是回到 form.html 而非 post.php,且 done.php 使用 HTTP GET 方式取得內容,所以重新整理頁面也不會重新送出表單內容。此流程按照三個步驟的 HTTP request 方式稱為 Post/Redirect/Get pattern。

PRG pattern 寫起來至少會有三個頁面要實作,也是挺麻煩的。若還要簡單一點的方式,那大概就是改用 AJAX 處理表單了吧。

Reference:
Post/Redirect/Get – Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Post/Redirect/Get

Tags:Web, 資訊學習

手腕受傷

Posted on 2014 年 9 月 2 日2021 年 3 月 12 日 By 日落 在〈手腕受傷〉中尚無留言

最近手腕舊傷似乎又復發了,距離上一次了大約一年。

去年不明原因手腕腫起來就醫,診斷為肌腱發炎,做了接近一年的復健才康復,而最近又有僵硬、酸痛的症狀發生。

這二次的共通點大致都是工作較忙、打字數較多,最近注意了一下,左手在按組合按鍵時的姿勢特別覺得酸,注意了一下打字的習慣。

平常均使用左手按 Ctrl / Alt / Shift,另外的 key 則是看哪隻手位置比較順。另外也稍微注意一下主要的開發環境,vim 編輯程式時,會用到 Ctrl + w (switch window)、zR / zM (folding)、Ctrl + F (page down) 等,還有一個可能的原因是 PHP 的語法中,所有的變數名稱都是「$」開頭,讓左手的負擔加重。

嘗試了改用右手還按組合鍵,不過習慣難改,工作效率反而一直往下掉。看來就只有晚上多休息,先撐過專案以後,來考慮修改 vim key map,甚至換掉原有的鍵盤排列方式。

Tags:生活雜記

其他

關於我  (About me)

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.