Golang 上癮,JavaScript 也要來個 Struct。
標籤: JavaScript
向 av-name 道別
最後決定移除了所有的 av-name 標籤,取而代之的是在 class 裡面加入一些類別,
有點像是遵循著 TocasUI 那樣的規則。
理想、現實、超現實。
這是理想:
這是現實:
這是超現實:
用最簡單的方法詮釋 MVC?
是說 TeaMeow 整個都是 MVC 架構 .. 雖然還在逐漸學習的狀態,
現在也在考慮 JavaScript 也要用 MVC 的架構去做,是說這篇問答真的蠻好理解的。
http://stackoverflow.com/questions/8497833/hello-world-in-mvc-pattern
jAsper – 希豹
實際上就是用來取代 jQuery 的東西,然後其實就是之前的 TocasJS 重新命名,還有做整理而已。
之後會提到更多詳細的資訊,新來繼續忙 TeaMeow。
自動產生「原始碼」的 JavaScript
最近一直在忙於 Tocas UI 阿,
然後在尋找 Semantic UI 到底是怎麼做出「自動產生原始碼」的功能,
所以後來我的想法就是自己做一個,
基本上概念就是:
- 取得指定容器內的 HTML
- 透過 Tidy 去清潔這個 HTML
- 輸出到指定容器
不過卻少了一個功能,就是「重點標記」,所以後來我又新增了這個功能,
最後概念變成:
- 取得指定容器內的 HTML
- 透過 Tidy 去清潔這個 HTML
- 輸出到指定容器
- 檢查每個容器想要標示的重點
- 把容器內的文字新增重點樣式
我想之後應該會在 Github 公開這個原始碼,因為真的是很方便,
其實使用起來也很方便就是了。
Tocas 現在支援點擊編輯 .. ?
TeaMeow 的懶人教室 —— 條件式
這裡是我本身會寫的懶人作法,有時候會讓程式更簡潔,通常是 PHP 或者 JS 都可以用。
如果⋯⋯
你可以把「如果怎樣,這個值就怎樣的」方式縮短,例如原本:
if($Foo) { $Bar = 'OK'; { else { $Bar = 'Not OK'; }
可以變成
if($Foo) $Bar = 'OK'; else $Bar = 'Not OK';
更可以變成
$Foo = ($Bar) ? 'OK' : 'Not OK';
必須⋯⋯
有時候你會用「IF 去框住,例如必須大於多少,才可以」的方式,大概是:
function Foo($Bar) { // 必須大於 50 才執行下面語句 if($Bar > 50) { $Msg = 'Im Really OK.'; $Time = time(); } }
可以改成
function Foo($Bar) { // 直接在開頭就先做了斷 if($Bar > 50) return; $Msg = 'Im Really OK.'; $Time = time(); }
關於 TeaMeow 如何星號的方法
說穿了,就只是一個下面這樣的按鈕而已
<button data-star-action="star" data-star-id="4" data-star-target="Meow" class="js-star-btn"></button>
這裡是他們的說明:
data-star-action 用來存放接下來應該「Star(星號)」還是「Unstar(取消星號)」的動作。
data-star-id 則是目標對象的編號。
data-star-target 則是目標的種類。
其實 Twitter 也是採用這種方法,但是他們不會將編號寫在按鈕上,
而是在包含這個按鈕的「容器」上,如此一來就不需要一直寫 data 的標籤到每一個按鈕
只需要取得這按鈕容器的標籤就可以了,那為什麼我不這樣做呢,
因為我想說統一化就好了,如果我選擇寫在容器上,每個地方的 HTML 不同,
取得容器的方式也有所不同,那不如我先暫時寫在按鈕上吧 ..
TeaMeow 怎麼傳遞新/舊貼文的?
其實很簡單就是 JSON 格式啦,很多網站都是,不過差別在於你接收到的資料是不一樣的,
有的網站他們會回傳很多個 Object,然後到你電腦上在自己建立成 HTML,
但是 TeaMeow 的方式跟 Twitter 很像,是在伺服器端建立好 HTML,才傳給你,
不過沒有 Twitter 這麼先進就是了(因為 Twitter 不只回傳 HTML,還有每篇文章的 Object):
如果你有興趣的話,這裡是 TeaMeow 從產生到回傳的流程:
- 透過 Tocas 去告訴伺服器要資料。
- 伺服器找資料然後丟給 Builder(建造者)。
- Builder 丟給 Teapot(茶葉系統)來做整理的動作。
- Teapot 丟給 Avane(模板系統)建立 HTML 內容。
- 最後將 Avane 回傳的內容跟一些其他的參數傳回客戶端。
- 客戶端(就是使用者)接收到資料後,透過 Tocas 來將資料顯示到螢幕上。
好啦,既然 TeaMeow 回傳的是 HTML,
那麼手機版跟 API 的部分該怎麼辦呢,
就這樣,熬夜的日子又要持續下去了。