首頁>Club>
在大型中後臺應用(或low code平臺)的動態表單等場景下,傳統JSON Schema式方案的結構十分臃腫。為什麼這時不考慮直接將圖靈完備的JS(或其簡單子集)作為資料儲存,以此來替代JSON呢?這樣很容易將「聯動、巢狀」地建立表單的流程,用JS來語義化地表達,而不是不停地把JSON Schema做得越來越重。以現代JS的語法,將JS直接作為DSL時,資料結構也完全可以設計得很簡潔,像這樣:() => [ () => ({ name: '使用者名稱', type: 'user' }), () => ({ name: '密碼', type: 'password', minLength: 8 }), () => ({ name: '驗證碼', type: 'number' }) ]以現在的前端技術生態,有兩點能支撐這種設想的重要突破:前後端interop方面,同構架構已經普及,對這種資料做解析和CURD是容易的。安全性方面,除了iframe沙箱外,現在還可以用編譯到WASM的QuickJS等嵌入式引擎來eval此類資料,杜絕潛在的注入隱患。並且在經典的JSONP跨域方案中,後端介面已經是在動態生成script指令碼了。所以這應該也不算是完全沒有先例的異想天開吧。希望能收集一些對這種設想可行性的討論和反饋,謝謝。
14
回覆列表
  • 1 # DianYingMi

    JSON就是JS裡面的概念。所有的程式語言都有資料和程式兩個概念。JSON為資料的序列化進行儲存和傳輸做了定義。比如在key必須用雙引號。

  • 2 # 骨頭冰

    可以的,你把返回的內容寫成json格式,被其他的前端呼叫就可以勒。一直都是這樣用的,php也可以,其他的都可以。

  • 3 # 劍蘭春

    都是一家人為談何取代,如果覺得多個引號不爽的話,可以把介面全部設計成jsonp的格式,前端直接用script標籤引入就行了。

  • 4 # DazenSun

    外行?理論上,js是一種指令碼語言(JavaScript),json(JavaScriptObject Notation, JS 物件簡譜)是一種輕量級資料交換格式,是js的一個子集,沒有替代不替代一說,後端語言php、java等開發的api介面,返回json標準格式資料,便於前端呼叫,前端可以使用js讀取json資料結果展示到網站上!為什麼是json,因為json是一個標準的資料互動格式,大部分語言都可以讀取json資料,這樣的話就可以開發多端,比如流行的微信小程式、app、網站三端,同步資料!

  • 5 # UnicornBoat

    無論你返回什麼裡面都必須包含前端需要的資料,你說的方法很早以前php就在這樣做,在後端用php填充js裡需要的變數,然後直接渲染,或者發回給前端。

    所以現在不管你後端用什麼需要打包,發回給前端的是js那就是這個思路。而只要你想返回,就必須包含資料。我看你給的js例子裡面包含的還是json。

    直接返回js給前端,前端增加了工作量,前端除錯想修改還得發給後端,除非是全棧或者幾個人的小專案,不然會拖累效率。

    你直接返回的js裡面或許只包含必要的資料,但是當前端需要跟後端通訊就會產生不必要的麻煩。資料發給後端,返回的是js。如果這個js裡只有變數那還不如直接返回json。如果裡面包含函式還涉及到替換函式等等操作。

    覺得返回的json臃腫,可以重新考慮更有效率的互動方式。

  • 6 # 晚器

    個人觀點:從理論上,肯定可以實現,但在實踐中,這樣做是不允許的,理由如下:(1)軟體是由兩部分組成,程式碼和資料,js是程式碼,json是資料,一個是機器,一個是加工的材料,各是各的道,(2)軟體執行是有環境支援的,js來自後臺,後臺必須裝編譯js的庫等,傳輸也必須有支援JS的庫等,而這些目前沒有,你需要先開發這些基礎庫,其他還有很多,不說了,祝你進步。

  • 中秋節和大豐收的關聯?
  • 結婚了,為什麼總是夢見以前暗戀的且很多年沒有聯絡的人?