來源:互聯網
上載者:User
關鍵字
intern
status
script
lt
gt
今天,我和我同事在討論php 與js互動的時候,他認為:
我認為這樣比較亂,如果互動資料多了的話,所有,我改成這樣
...
他說我這樣寫很麻煩,沒必要。
我想知道大家是咋想的,又如何處理前端(js)與後端(jsp,php等)的資料互動的。
回複內容:
重新修改答案後整理了一份《前後端資料互動方法
》
在此介紹幾種常用的前後端資料互動方法,並給出使用建議。以提高前後端協同開發的效率。
目錄:
1. HTML賦值
2. JS賦值
3. script填充JSON
4. AJAX擷取JSON
5. WebSocket即時傳輸資料
6. 總結
1. HTML賦值
輸出到 Element 的 value 或 data-name
">
任何時候兩種不同的技術發生硬耦合都是非常糟糕的軟體設計,因為會帶來不可調試、不可追蹤等問題,每一種技術都有自己從開發到調試、測試甚至是構建的一套完整技術棧和工作流程,當兩種技術耦合在一起就會讓這個工作流程部分或完全失效。
所以從這個角度看,雖然問題裡面提出的第二種優於第一種,但是兩種方式本質上都是一個問題:硬耦合。第一種方案 JavaScript 和 PHP 耦合在一起了,第二種 HTML 和 PHP 耦合在一起了。所以還有更合理的解決辦法,那就是前後端完全 decouple,通過 API 通訊擷取資料,用 JavaScript 動態渲染頁面。你同事的意思是 要把所有的js代碼寫到php檔案裡面? 不然真不明白第一種寫法怎麼跑的通
想前後端通訊資料 就用ajax啊。 臥槽。。
你和你的同事從來沒聽過PHP架構這種概念?寫頁面的幾個人呢?
如果前端只有一個,那兩種方案都可以。
前端再拆分,寫html和寫js的分工的話,第二種更好。
還有拆得更合理的方案,就是自訂屬性,畢竟第二個方案添加了無意義的元素,不如直接'}">,甚至hide_value這個元素都可以用不著,直接在其父元素上定義就可以了。擷取就是 var data= xx.getJson($("#hide_value").attr('data-val')), jQuery本身沒有json處理函數,自己隨便搜個下來用吧。
不過這些東西不是都是前端來寫嗎?後端只負責給出 $user_intern_status,怎麼調用是前端自己定的。為啥不用 php+smarty的架構呢用架構就有架構內建的方法,但還是覺得js和php要分開來,因為js的變化實在太平凡了。你不會用smarty動靜分離麼。或者寫jquery寫法都沒有錯,得看實際情況再挑選最實惠的做法。其實個人覺得你這樣更亂,除非資料是需要通過表單提交的,不然直接賦值給變數不是更好嗎?
明明一行代碼操作就OK的事情,你要用兩行代碼。