據我所知,致電render
將返回一個響應給瀏覽器。它可以返回不同類型的內容(html,json,js等)。然而,我對瀏覽器之後的功能有些困惑。Rails - 格式和渲染 - 它們是如何工作的?
如果響應爲html,則瀏覽器只呈現頁面。如果響應是json,通常,客戶端js代碼將採用json響應並對它做一些有用的操作。如果回覆是js,瀏覽器會做什麼?我不確定這個js是否被附加到文檔並執行?這與Rails UJS有關嗎?
另外,渲染與respond_to有什麼關係?他們並排使用,還是比另一種更受歡迎?
render html:
render js:
render json:
respond_to |format| do
format.html
format.js
format.json
end
對不起,如果這看起來像很多問題,但我認爲這將有助於如果這些問題一起討論。
我實際上是指rails/jquery-ujs和它附帶的魔法。 「至於追加到文檔中,並非完全沒有,瀏覽器接收到一堆代碼,並且如果可以的話,它會在當前文檔的上下文中運行該代碼。它不會隨後將代碼保存到任何地方,當它完成時它將被丟棄,並且文檔將保留在腳本留下的任何狀態中。「 - 我可以使用稍後在js響應中定義的函數嗎?您知道我可以在哪裏閱讀關於這個話題更多?(瀏覽器用js響應做什麼) – maru