主頁 > 企業開發 > 凹凸技術揭秘·羚瓏頁面可視化·成長蛻變之路

凹凸技術揭秘·羚瓏頁面可視化·成長蛻變之路

2021-01-05 07:30:27 企業開發

作者: 凹凸曼

前言

京東零售集團 · 用戶體驗設計部打造的「羚瓏智能設計平臺」于 2019 年 5 月為內部運營及商家推出了智能頁面設計工具,羚瓏智能頁面設計是一款在線可視化頁面搭建平臺,擁有在線搭建 PC、H5、小程式等多平臺頁面能力,覆寫頻道頁、活動頁、店鋪頁、滑屏宣傳頁、答題類、互動游戲類、小程式等多個應用場景,為商家、運營人員提供在線服務,讓不懂設計、不懂代碼的用戶也可以一鍵上線頁面,

基于「Taro」強大的多端能力,能夠實作一次搭建,生成 H5、小程式、RN等跨端應用,極大地解決重復開發的問題,提高開發效率,

聊聊羚瓏智能頁面設計的歷史

業務中求突破

在 2017 年以前,京東線上大量的 PC 頻道頁都是通過手工開發的,開發周期非常長,當時公司內部也有一個 CMS 系統,前端開發完的頁面,需要通過這個系統進行發布上線,整個頁面的開發依賴這個系統,并且需要在線上完成這些作業,另外還要錄入一些資料坑位,才能預覽到頁面,當時為了解決前端的開發效率,我們把線上開發及資料坑位錄入的作業,搬到本地通過一系列自研工具完成,完全顛覆了整個頻道頁的開發方式,整體的開發思路沿用至今,

榷訓月累,我們手上已經開發了非常多的頻道頁,而且到后面發現,很多頁面都非常相似,只是一些樣式上的差異,當發現作業重復的時候,應該是造車的時候了,可以讓我們跑得更快,

搭建平臺雛形

羚瓏智能頁面設計的前身,它只能說是一個頁面拼裝系統,有一位頻道運營的同事找過來,希望能快速開發一個頁面,問:“能不能把線上的某幾頁面中的不同樓層拼在一起,快速上線幾個頁面”,很顯然對于不懂技術的人來說似乎非常簡單的事情,但是對于我們開發來說,并非如此簡單,我們嘗試把不同頁面的代碼找出來,快速開發一個新的頁面,發現很多問題,如樣式沖突、腳本沖突等一系列問題,

于是后面我們對已有的頁面,進行樓層級的改造,改造后的樓層,能夠獨立運行,并且不同的代碼及樣式只作用于當前樓層,這樣,不同樓層組合出來的頁面,能夠正常顯示,

經過改造后的公共樓層,為了讓用戶能夠自由組合樓層去拼裝出一個頁面,我們搭建了一個在線可視化平臺,把所有公共樓層以串列形式展示出來,支持通過拖拽形式組裝頁面,支持一些常規的屬性配置,如公共頭部、顏色等,基本上能滿足部分用戶訴求,

拼裝系統

真正的可視化之路

頁面拼裝系統的痛點

頁面拼裝系統,它主要解決了開發及用戶的一小部分訴求,離真正的可視化之路,還很遠,很快拼裝系統暴露了它一些問題:

  1. 在技術層面,由于樓層的粒顆度不夠小,要做一些布局上的調整,需要調整到代碼才能支持,缺乏一定的靈活性,以及使用過時的技術堆疊 jQuery,后期維護成本也非常高,
  2. 在用戶運營方面,在我們的平臺上不支持根據真實的資料預覽效果,系統只是完成了頁面框架搭建的事情,
  3. 在資料錄入方面,還是難以擺脫前面提及的 CMS 系統,用戶需要回到 CMS 系統上面填寫真實的素材,所以存在不同系統之間的切換,

可視化編輯器設計思路

給合拼裝系統的一些問題,我們開始重新設計一款真正基于組件化的頁面搭建平臺,

羚瓏智能頁面可視化編輯器,包括幾個基本核心要素:組件庫、設計器、屬性編輯,

  1. 組件庫分為基礎組件和業務組件,由于 PC 頁面比較復雜,有布局的概念,所以我們需要設計一套布局系統,借鑒于業界優秀的柵格設計思想,再結合我們頁面的實際情況,完成了頁面的框架與基礎組件設計,業務組件窮舉了大量線上頁面,把常用的組件進行組件化改造,并且支持靈活的屬性配置,

  2. 設計器負責組件拖拽、組件加載、渲染邏輯、組件樹操作、動態屬性注入等功能,通過高階組件的方式,能幫助我們輕松給組件添加一些特定功能,

  3. 屬性編輯,組件每個屬性都對應著一個型別,那么它屬性資料編輯的方式也不一樣,我們設計的型別基本覆寫所有組件,另外還設計了一套條件規則,讓屬性之間能夠聯動顯示,

實際上要完成一個高可用的可視化編輯器,需要了解的知識點與細節非常之多,這里不做詳細展開介紹,

經過近一年的沉淀,頻道頁開發已經從人工開發,全面轉型為可視化,目前京東線上大部分頻道頁都是通過自助搭建方式完成上線,

PC搭建平臺

編輯器全面升級

2019年初,借鑒于過去在公司內可視化領域取得了小有成績,我們產品方向重新定位為聚焦商家在線上經營程序中的頁面設計需求,希望通過降低頁面上線門檻,從而提高商家、運營人員上線頁面的效率,因此,對頁面可視化編輯器進行了一次遷往移動端的升級,整個視覺風格及互動方式,都進行了全面升級,去除了復雜的布局,用戶使用起來更加便捷,

編輯器全面升級

組件庫升級

我們把組件庫升級為一個全新的平臺「Quark」,它作為一個獨立的設計資產平臺,為編輯器提供組件、圖示庫等物料,目前已經沉淀的官方組件有50多個,200多種布局形態,能夠滿足大部分頁面需求,同時還支持公司內部其他研發團隊開發自己的組件,接入到我們的可視化平臺中,通過我們的上線頁面服務上線,

組件庫升級

屬性面板升級

配置體驗影響用戶搭建效率: 用戶在日常使用編輯器時,需通過更改組件配置項以滿足頁面個性化需求,我們發現,組件配置項的面板結構復雜、組件配置項理解成本高、操作方式不符合用戶習慣等體驗問題已經嚴重影響了用戶的配置體驗與搭建效率,

舊版組件配置項面板: 分類以「功能」、「樣式」、「資料」做區分,用戶理解成本高,經常出現同一配置項出現在多個磁區的情況,極大增加了用戶的操作成本,

新版組件配置項面板: 重新定義了面板結構規范,從用戶配置操作行為區分,劃分為「組件名稱」、「組件布局」、「資料錄入」、「樣式配置」與「樓層配置」5大區域,不僅利于用戶理解,縮短了用戶的操作路徑,對于產品本身而言,清晰的布局劃分與功能定義還提效了新增組件的配置項拆解作業,

屬性面板升級

改版前 v.s 改版后 配置項面板整體結構磁區、配置項元件化示意

元素編輯器

當我們的官方組件無法滿足用戶個性化需求的時候,我們思考著能否為用戶提供一種自定義組件的能力,所以元素編輯器應運而生,它提供了一個自定義畫板的能力,用戶可以自由拖拽一些基礎元素,如文本、圖片、圖形等,添加上一些自定義事件和影片,一個生動的的自定義組件,便能輕松完成,

元素編輯器

設計資產沉淀

設計師沉淀了上千套模板提供給用戶使用,這些模板全部接入「羚瓏」智能圖片設計能力,用戶能夠直接在線修改圖片素材內容,輕松實作高質量的頁面,另外我們的模板還支持智能配色,用戶可以根據配色方案進行頁面整體換膚,

設計資產沉淀

羚瓏智能作圖

為解決用戶做圖的痛點,羚瓏頁面編輯器與羚瓏圖片編輯器深度結合,為用戶提供在線圖片編輯的能力,用戶無須使用一些做圖軟體,便能在線上完成圖片編輯,

羚瓏智能作圖

多應用場景適配

活動場景

我們的活動頁是如何完美適配移動端和桌面端的呢?

一個移動端頁面要適配桌面端,通常的做法是通過回應式的手段來實作,這種方式比較簡單粗暴,但是效果其實并不好,例如移動端的首焦圖,如果在桌面端等比放大,那將會占滿首屏,用戶體驗極差,

所以我們采取了一系列的轉換規則來實作:

舉個例子

PC端的內容其實是跟移動端的內容做了對應關系,并且根據端的特性做了一系列通用的變換規則,比如秒殺商品中秒殺倒計時與商品在移動端為上下布局,而在PC端則為左右布局,商品單元在移動端為一排2個,在PC端則增加為一排4個,

秒殺商品

轉化的規則是什么?

拉伸: 在布局不發生改變、內容沒有增減的情況下進行拉伸,如廣告組模塊:

拉伸

文本: 文本內容較重要時我們會做無增減的拉伸,當空間位置受限,同時文本內容又不是非常關鍵的資訊時會選擇文本截斷的方式進行拉伸,

文本

圖片: 一般來說細節圖去做等比拉伸,這樣盡最大可能的保證兩端效果的一致性,

圖片

由于移動端寬高比相比 PC 端要小很多,為了保證在大屏上的效果不至于出現“霸屏”的情況,還會有取舍的進行裁切,

圖片

模塊: 移動端通常會將一個樓層劃分為一個模塊,對應到PC端會將模塊在橫向進行拉伸,

模塊

布局改變: 布局發生改變時需要將元素進行重排

如頭圖banner模塊,如果采取等比拉伸的策略會導致頭圖特別高,在 PC 端影響第一屏的頁面效率,如果采取裁切的形式將會影響圖片的展示效果,所以采取圖片內元素重排的形式進行變化,

布局改變

錨點導航模塊在移動端是橫向的導航,上滑頁面時會吸附到頁面的頂部,而在 PC 端我們一般會吸附在頁面的側邊固定位置,

錨點導航

內容增減: 單元重復展示模塊一般會用內容增加和刪減的形式來處理,比如商品模塊在 PC 端橫向空間比較大的情況下會多展示單元格數,

內容增減

結合這些轉換規則,能讓用戶只要搭建一次頁面,便能快速同時生成兩端活動頁,投放到移動、PC端平臺,節省運營成本,

互動營銷場景

過去商家想做一個互動類的頁面,基本上是很難實作的,有著成本高、開發周期長等問題,互動營銷場景為了解決這一系列痛點,把互動玩法進行組件拆解,再通過頁面可視化平臺進行配置上線,原來一個互動玩法從方案到上線大概需要一個月左右,現在通過可視化搭建方式只需要十分鐘,大大提高了效率,

互動營銷場景

互動營銷場景2

小程式場景

我們是京東內部首個小程式可視化搭建平臺,借助「Taro」的跨端能力,我們平臺天然具備了發布跨端小程式頁面的能力,結合京東「開普勒平臺」的黃金流程,快速產生一套完整的電商小程式代碼,支持發布微信、百度等多個小程式平臺,完成「九陽」、「戴森」等多個商家小程式上線,

小程式場景

小程式場景

店鋪場景

店鋪場景下,我們實作了三個重要的應用場景:

  1. 店鋪首頁,為商家提供店鋪首頁搭建的能力,并實作了把設計結果與「京東智鋪」的素材打通,滿足商家店鋪首頁裝修訴求,

店鋪首頁

  1. 店鋪推廣,一個基于元素編輯器擴展的場景,提供滑屏類頁面活動搭建的能力,提供了極具個性化宣傳頁能力,

店鋪推廣

  1. 店鋪購物小程式,以中心化小程式的形式為商家提供私域流量工具,提供豐富的營銷工具,如抽獎、關注有禮、全景館等多種玩法,

店鋪購物小程式

編輯器積木化

為何要做編輯器積木化?

  1. 隨著場景越來越多,編輯器的代碼邏輯也變得非常復雜,不同場景都有一些特殊的功能邏輯,每個場景又分為模板搭建端和用戶使用端,在編輯器中的表現形式不同,而且編輯器與平臺的業務邏輯強耦合,
  2. 公司內部很多平臺,都有可視化搭建的訴求,如果重新開發一個可視化編輯器,少則至少需要半年時間,如果直接復用我們的編輯器積木,將會大大提升效率,也減少公司內部重復造車的情況,
  3. 我們編輯器的研發團隊人力有限,不能及時滿足各場景的需求,擴展性差,
  4. 改動一個小小的功能,整個編輯器都需要發布,如果出問題,所有場景都受影響,
  5. 編輯器的功能越來越多,體積也隨之上升,時間久了,整個編輯器變得非常臃腫,

為了解決這些問題,我們進行了一次編輯器的架構全面升級

基于配置的插件化架構

我們將編輯器劃分為:主設計器 + 插槽區域,分別用兩種顏色表示:

主設計器

  1. 主設計器:負責編輯器核心邏輯,組態檔決議、插件加載器、組件加載、全域狀態管理等;
  2. 插槽區域:編輯器會預留幾個主插槽位置用來加載插件功能;

我們大致來了解一下整個編輯器的作業流程:

  1. 編輯器讀取組態檔,組態檔是對整個編輯器的描述,包括所有插件的配置,
  2. 編輯器中提供幾個核心位置以插槽的形式,讀取組態檔中的插件,
  3. 編輯器的功能抽離成一個個插件檔案,通過異步的形式進行加載,這樣做的好處是可以按需加載、邏輯解耦、有利于提高系統的擴展性,
  4. 每個插件加載可以動態注入到編輯器應用中,同時它能夠共享編輯器的狀態,完成插件之間通訊以及呼叫編輯器的資料和方法,
  5. 編輯器實際上只做一件事情,就是頁面描述的生成,其他業務邏輯交業務側做,這樣的好處是能使編輯器完全解耦獨立運行,只需要做一些與編輯器、插件的通信介面,就能快速使用起來,
  6. 各使用場景只需要關注自己的編輯器應用配置即可,互相不影響,包括插件個性化升級,

對外賦能應用

目前,我們的編輯器積木化解決方案已經應用在京東內部其他平臺當中,如京東數科江湖平臺、京東ME行業版平臺等,作為頁面設計引擎助力各平臺的商業化快速發展,

對外賦能應用

結語

目前為止,業界有很多優秀的頁面可視化產品,為何一直沒有盡頭,一直有新的平臺出現,但都沒有最終極的解決方案,那是因為沒有真正的「銀彈」,只有適應業務發展的產品,才是最適合的,未來我們將會往智能化頁面設計的方向努力,必然會擦出新的火花,敬請期待!

參考

  • 羚瓏組件智能編輯新體驗
  • 揭秘羚瓏頁面-多端智能轉換
  • 智能頁面引擎全新亮相 頁面設計中臺初長成——架構篇

歡迎關注凹凸實驗室博客:aotu.io

或者關注凹凸實驗室公眾號(AOTULabs),不定時推送文章:

歡迎關注凹凸實驗室公眾號

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/244642.html

標籤:其他

上一篇:vue原始碼決議一

下一篇:使用純 CSS 實作滾動陰影效果

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • IEEE1588PTP在數字化變電站時鐘同步方面的應用

    IEEE1588ptp在數字化變電站時鐘同步方面的應用 京準電子科技官微——ahjzsz 一、電力系統時間同步基本概況 隨著對IEC 61850標準研究的不斷深入,國內外學者提出基于IEC61850通信標準體系建設數字化變電站的發展思路。數字化變電站與常規變電站的顯著區別在于程序層傳統的電流/電壓互 ......

    uj5u.com 2020-09-10 03:51:52 more
  • HTTP request smuggling CL.TE

    CL.TE 簡介 前端通過Content-Length處理請求,通過反向代理或者負載均衡將請求轉發到后端,后端Transfer-Encoding優先級較高,以TE處理請求造成安全問題。 檢測 發送如下資料包 POST / HTTP/1.1 Host: ac391f7e1e9af821806e890 ......

    uj5u.com 2020-09-10 03:52:11 more
  • 網路滲透資料大全單——漏洞庫篇

    網路滲透資料大全單——漏洞庫篇漏洞庫 NVD ——美國國家漏洞庫 →http://nvd.nist.gov/。 CERT ——美國國家應急回應中心 →https://www.us-cert.gov/ OSVDB ——開源漏洞庫 →http://osvdb.org Bugtraq ——賽門鐵克 →ht ......

    uj5u.com 2020-09-10 03:52:15 more
  • 京準講述NTP時鐘服務器應用及原理

    京準講述NTP時鐘服務器應用及原理京準講述NTP時鐘服務器應用及原理 安徽京準電子科技官微——ahjzsz 北斗授時原理 授時是指接識訓通過某種方式獲得本地時間與北斗標準時間的鐘差,然后調整本地時鐘使時差控制在一定的精度范圍內。 衛星導航系統通常由三部分組成:導航授時衛星、地面檢測校正維護系統和用戶 ......

    uj5u.com 2020-09-10 03:52:25 more
  • 利用北斗衛星系統設計NTP網路時間服務器

    利用北斗衛星系統設計NTP網路時間服務器 利用北斗衛星系統設計NTP網路時間服務器 安徽京準電子科技官微——ahjzsz 概述 NTP網路時間服務器是一款支持NTP和SNTP網路時間同步協議,高精度、大容量、高品質的高科技時鐘產品。 NTP網路時間服務器設備采用冗余架構設計,高精度時鐘直接來源于北斗 ......

    uj5u.com 2020-09-10 03:52:35 more
  • 詳細解讀電力系統各種對時方式

    詳細解讀電力系統各種對時方式 詳細解讀電力系統各種對時方式 安徽京準電子科技官微——ahjzsz,更多資料請添加VX 衛星同步時鐘是我京準公司開發研制的應用衛星授時時技術的標準時間顯示和發送的裝置,該裝置以M國全球定位系統(GLOBAL POSITIONING SYSTEM,縮寫為GPS)或者我國北 ......

    uj5u.com 2020-09-10 03:52:45 more
  • 如何保證外包團隊接入企業內網安全

    不管企業規模的大小,只要企業想省錢,那么企業的某些服務就一定會采用外包的形式,然而看似美好又經濟的策略,其實也有不好的一面。下面我通過安全的角度來聊聊使用外包團的安全隱患問題。 先看看什么服務會使用外包的,最常見的就是話務/客服這種需要大量重復性、無技術性的服務,或者是一些銷售外包、特殊的職能外包等 ......

    uj5u.com 2020-09-10 03:52:57 more
  • PHP漏洞之【整型數字型SQL注入】

    0x01 什么是SQL注入 SQL是一種注入攻擊,通過前端帶入后端資料庫進行惡意的SQL陳述句查詢。 0x02 SQL整型注入原理 SQL注入一般發生在動態網站URL地址里,當然也會發生在其它地發,如登錄框等等也會存在注入,只要是和資料庫打交道的地方都有可能存在。 如這里http://192.168. ......

    uj5u.com 2020-09-10 03:55:40 more
  • [GXYCTF2019]禁止套娃

    git泄露獲取原始碼 使用GET傳參,引數為exp 經過三層過濾執行 第一層過濾偽協議,第二層過濾帶引數的函式,第三層過濾一些函式 preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'] (?R)參考當前正則運算式,相當于匹配函式里的引數 因此傳遞 ......

    uj5u.com 2020-09-10 03:56:07 more
  • 等保2.0實施流程

    流程 結論 ......

    uj5u.com 2020-09-10 03:56:16 more
最新发布
  • 使用Django Rest framework搭建Blog

    在前面的Blog例子中我們使用的是GraphQL, 雖然GraphQL的使用處于上升趨勢,但是Rest API還是使用的更廣泛一些. 所以還是決定回到傳統的rest api framework上來, Django rest framework的官網上給了一個很好用的QuickStart, 我參考Qu ......

    uj5u.com 2023-04-20 08:17:54 more
  • 記錄-new Date() 我忍你很久了!

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 大家平時在開發的時候有沒被new Date()折磨過?就是它的諸多怪異的設定讓你每每用的時候,都可能不小心踩坑。造成程式意外出錯,卻一下子找不到問題出處,那叫一個煩透了…… 下面,我就列舉它的“四宗罪”及應用思考 可惡的四宗罪 1. Sa ......

    uj5u.com 2023-04-20 08:17:47 more
  • 使用Vue.js實作文字跑馬燈效果

    實作文字跑馬燈效果,首先用到 substring()截取 和 setInterval計時器 clearInterval()清除計時器 效果如下: 實作代碼如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta ......

    uj5u.com 2023-04-20 08:12:31 more
  • JavaScript 運算子

    JavaScript 運算子/運算子 在 JavaScript 中,有一些運算子可以使代碼更簡潔、易讀和高效。以下是一些常見的運算子: 1、可選鏈運算子(optional chaining operator) ?.是可選鏈運算子(optional chaining operator)。?. 可選鏈操 ......

    uj5u.com 2023-04-20 08:02:25 more
  • CSS—相對單位rem

    一、概述 rem是一個相對長度單位,它的單位長度取決于根標簽html的字體尺寸。rem即root em的意思,中文翻譯為根em。瀏覽器的文本尺寸一般默認為16px,即默認情況下: 1rem = 16px rem布局原理:根據CSS媒體查詢功能,更改根標簽的字體尺寸,實作rem單位隨螢屏尺寸的變化,如 ......

    uj5u.com 2023-04-20 08:02:21 more
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 08:01:50 more
  • 如何在 vue3 中使用 jsx/tsx?

    我們都知道,通常情況下我們使用 vue 大多都是用的 SFC(Signle File Component)單檔案組件模式,即一個組件就是一個檔案,但其實 Vue 也是支持使用 JSX 來撰寫組件的。這里不討論 SFC 和 JSX 的好壞,這個仁者見仁智者見智。本篇文章旨在帶領大家快速了解和使用 Vu ......

    uj5u.com 2023-04-20 08:01:37 more
  • 【Vue2.x原始碼系列06】計算屬性computed原理

    本章目標:計算屬性是如何實作的?計算屬性快取原理以及洋蔥模型的應用?在初始化Vue實體時,我們會給每個計算屬性都創建一個對應watcher,我們稱之為計算屬性watcher ......

    uj5u.com 2023-04-20 08:01:31 more
  • http1.1與http2.0

    一、http是什么 通俗來講,http就是計算機通過網路進行通信的規則,是一個基于請求與回應,無狀態的,應用層協議。常用于TCP/IP協議傳輸資料。目前任何終端之間任何一種通信方式都必須按Http協議進行,否則無法連接。tcp(三次握手,四次揮手)。 請求與回應:客戶端請求、服務端回應資料。 無狀態 ......

    uj5u.com 2023-04-20 08:01:10 more
  • http1.1與http2.0

    一、http是什么 通俗來講,http就是計算機通過網路進行通信的規則,是一個基于請求與回應,無狀態的,應用層協議。常用于TCP/IP協議傳輸資料。目前任何終端之間任何一種通信方式都必須按Http協議進行,否則無法連接。tcp(三次握手,四次揮手)。 請求與回應:客戶端請求、服務端回應資料。 無狀態 ......

    uj5u.com 2023-04-20 08:00:32 more