Ralis2022/11/14

Ruby on Rails20221114

20221114Ruby on Rails 日記

Rack

Ruby作為程式語言之一可以用來建立網頁,但瀏覽器在解析語言時只能解析靜態的程式語言,並無法直接解析Ruby的內容,此時便需要類似於轉接頭的工具來協助,即是Rack。p.s雖然Rack與Rake發音相似但一個是轉接器功能但另一個卻是框架

Rack在接收資訊時主要接受的為一個擁有三個元素的陣列該陣列的長相如下[狀態,{"Content-Type" => "text/html"},[內文],該陣列必須寫在一個自己建立的config.ru的檔案裡面並使用call方法設定後使用run呼叫

middleware是指在使用run方法前會有一個由use方法呼叫的code他會將已經設定好的方法內容依照use的先後順序安插近run方法呼叫的code裡面

最後Rack可以使用rackup指令在終端機中作用

Rails

Turbolinks

這是一種Rails特有的超連結處理方式,主要係使用AJAX的方式去更換站內的網頁顯示。

他的運作方法主要是先攔截站內的所有超連結語法標籤後再去判斷該超連結是否連到本站內的網頁,若是的話則會將Javascript當中的defer語法拿掉並抓取要切換到的本站內網頁的網址、標題、內容等做render或覆蓋,而不使用網頁切換的方式已達到提升網頁切換的效率。

但此特殊的網頁切換模式也在實務上產生了各種各樣的問題,因為Turbolinks會將整個Js語法當中的a標籤運作方式改道導致了他的運作方式叫原本更為複雜需要去更多的研究它,所以現階段大多樹的操作上會將Turbolinks關掉或刪除,但在rails7後他會作為核心的rails前端功能之一,這變成了在未來使用rails開發時勢必要去更多的了解Turbbolinks的運作方式否則在前端的作業上會產生嚴重的問題。