簡體   English   中英

處理Javascript Server-Side是否是重復邏輯的解決方案?

[英]Is processing Javascript Server-Side a solution to duplicated logic?

如今,Web應用程序廣泛使用Javascript,例如Gmail和日歷等各種Google產品。

我正在努力解決如何沒有重復的邏輯服務器和客戶端。

在請求應用程序的頁面或狀態時,我更願意發送完整的UI,這意味着:不僅僅是一些javascript,它反過來會產生十幾個ajax請求並構建用戶界面。

但問題在於,決定要顯示與否的邏輯必須在服務器端編寫一次,在客戶端語言編寫一次。

然后我想知道是否有可能以某種方式處理你的javascript邏輯服務器端並將整個發送到客戶端,而客戶端又可以繼續使用具有響應ui的所有優點的應用程序,但沒有初始加載的缺點/由於后台ajax請求的依賴性而構建用戶界面。

我希望我的問題的解釋有點清楚,因為我不是最流利的英語作家。 如果你理解我的意思,如果你能更好地描述問題,請做...謝謝!

所以我的問題是:

  • 這樣的事情是可能的還是現實的?
  • 您對如何解決這個問題有何看法?

;-)

當我們啟動我們的網絡應用程序時,我們遇到了同樣的問題。
它可能會幫助您了解我們的結果:

  • 后端(業務邏輯,安全性)與前端完全分離(gui)

  • 前端和后端專門通過JSON服務進行通信

  • 使用PURE模板庫在JSON中呈現客戶端

  • 而后端是Erlang(任何流JSON都可以,但我們喜歡它的力量)

對於您的問題,您必須將瀏覽器視為完全不安全。
所有安全邏輯都必須來自后端。

隱藏或顯示屏幕客戶端的某些部分是可以的,但是確保后端決定將哪些數據發送到瀏覽器。

好像你描述了Jaxer 。你可以用JS編寫所有內容。
此外,還有GWT允許在Java上編寫完整的東西

然后我想知道是否有可能以某種方式處理你的javascript邏輯服務器端並將整個發送到客戶端,而客戶端又可以繼續使用具有響應ui的所有優點的應用程序,但沒有初始加載的缺點/由於后台ajax請求的依賴性而構建用戶界面。

也許您正在查看的應用程序只是使用Ajax。

您可以在服務器上預處理的唯一內容是您已經知道用戶想要的內容。 例如,在電子郵件應用程序中,您可以在他們登錄后立即向他們發送收件箱的完整視圖,在服務器上預處理並使用單個請求獲取。但您可以使用AJAX獲取特定郵件一次他們點擊它。 預先向他們發送所有消息將會太慢。

如果使用得當,AJAX應該可以讓您的頁面更快 ,因為它可以請求微小的更新或更改內容而無需重新加載整個頁面。

但問題在於,決定要顯示與否的邏輯必須在服務器端編寫一次,在客戶端語言編寫一次。

不必要。 例如,在PHP中,您可以編寫一個類似displayWidgetInfo()的函數。 您可以使用該函數在頁面加載時發送初始窗口小部件信息。 如果用戶單擊窗口小部件以更改某些內容,請將AJAX請求發送到也使用displayWidgetInfo()發送回新結果的PHP腳本。 幾乎所有邏輯都保留在單一功能中。

你的直覺是正確的 :重復代碼是不好的,而且對一個頁面提出太多請求是不好的。 但我認為你可以通過一些重構解決這些問題。

我明白你在說什么。

但我不認為你應該在客戶端有很多關於構建內容的“邏輯”。 如果你確實想要使用像你提出的模型(不是我的一杯茶,但為什么不這樣),我不明白為什么你最終會有很多重復。

在通常顯示tablediv ,您只需輸出JavaScript,即可在客戶端構建相關組件。

我會將其視為您的數據/業務邏輯模型中的另一個“視圖”。

你有一個小問題,你遇到了一個問題嗎?

我用這種方式理解你的問題:假設我們在網頁上有一個html表單。 名字和姓氏都有一個字段。 我們必須在客戶端(使用JS)和Sever端(在處理表單輸入時使用php腳本)檢查它的有效性。 所以這里是復制 - 雙方的正則表達式檢查。 那么防止它並梳理這些邏輯的方法是什么?

暫無
暫無

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

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