簡體   English   中英

將Markdown解析委托給客戶端有什么缺點?

[英]What are the downsides of delegating Markdown parsing to the client side?

我打算在即將到來的項目中加入Markdown。 在過去,我剛剛使用了預打包的服務器端Markdown解析器,重新清理了HTML輸出(這是一個不必要的步驟?)並將其發送給客戶端。

我有興趣將至少這部分視圖渲染卸載到客戶端。 我以前在Rails應用程序中使用了客戶端Javascript Markdown解析器並取得了巨大成功。 我委托body對象來監視class markdown-parseme之類的DOM插入,然后解析它並用結果替換原始文本。

但這是我第一次考慮將其用於野外生產網站。 讓客戶端處理Markdown渲染時會遇到什么問題和安全問題? 是否有任何特定的庫將這些問題考慮在內?

編輯:腦海中浮現的明顯問題是“那些沒有Javascript的人”。 檢測沒有啟用Javascript的瀏覽器並實現允許客戶端(可能手動)標記他們沒有JS並將解析移動到服務器端的機制完全在我們的能力范圍內。 我非常想調查是否存在嚴重的問題,除了這個普通的兼容性問題之外,將Markdown解析卸載到客戶端。 渲染一個沒有輸出緩存的大小合適的頁面會增加一個不可忽略的響應時間,通過它,服務器負載,如果我們有信心將該任務從95%的用戶移出服務器,那將是很好的。

如今,大多數人都使用javascript,所以這應該不是問題。 showdown庫非常適合客戶端渲染。

客戶端能夠解析Markdown語法的假設可能不正確(至少對於某些人和搜索引擎而言)。 如果為這些組提供服務器解析版本,則復制代碼。 服務器通常具有更強大的工具來防止XSS等(因為這就是服務器所做的事情:以安全的方式從用戶內容生成HTML)。

markdown-js尚未完成,但它是一個JavaScript庫,用於降序的一個子集,它使用AST而不是HTML轉換的不同階段。 它應該從一開始就產生理智的HTML。 我認為這種方法,如果執行得當,將使客戶端的渲染降價變得切實可行。

它故意不支持嵌入式HTML。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM