今天來談?wù)則able sort的那點(diǎn)事。預(yù)告一下,目的是做到前臺(tái)排序還有伺服器排序區(qū)分開,目前的table的分頁實(shí)際是比較「亂」的,相信很多用的有一段時(shí)間的特別是做server排序的同學(xué)都會(huì)多多少少遇到不正常的情況。
推薦:layui教程
先看看目前l(fā)ayui自帶的排序的效果,中文按字典排序這些不是本次討論的重點(diǎn),先看看如果存在整數(shù)負(fù)數(shù)還有0出現(xiàn)的情況
那麼是不是調(diào)整一下sort裡面的邏輯就可以了讓它對(duì)負(fù)數(shù)和0的判斷邏輯對(duì)了就好了。這個(gè)其實(shí)也不是這次討論的重點(diǎn)。
那麼重點(diǎn)是,server排序,實(shí)際上絕大部分的table的排序不會(huì)只是單頁的這樣子簡單的排序,而是把條件傳到後臺(tái)讓後臺(tái)排序,那麼官方給出的一般是監(jiān)聽sort然後reload,把條件傳過去,這些都很ok,邏輯都沒問題。
but實(shí)際得到的效果呢?因?yàn)槟壳皌able沒有區(qū)分前臺(tái)排序還是server排序,在接收到資料之後再渲染表格的時(shí)候判斷到有initSort,那麼會(huì)再次將資料排序,然後顯示,這就存在一個(gè)非常嚴(yán)重的問題!
明明server已經(jīng)排好序了,為啥還要js裡面再sort一下,更嚴(yán)重的是,能保證sort出來的結(jié)果跟後臺(tái)排序的規(guī)則出來的結(jié)果一致麼?拿什麼保證呢?
看看下面的程式碼監(jiān)聽reload的時(shí)候然後模擬後臺(tái)把資料按照負(fù)數(shù)
程式碼:
效果
可能你會(huì)覺得跟前面沒啥區(qū)別呀,排序的時(shí)候還是錯(cuò)了呀,這正是異常的地方??纯次夷M回傳的data裡面的結(jié)構(gòu)吧
原始的data:
模擬的介面回傳的data:
這個(gè)回傳之後顯然顯示的效果跟實(shí)際資料的順序?qū)Σ簧咸?hào)
原因就是上面說的,實(shí)際發(fā)後臺(tái)排序的時(shí)候到了渲染的時(shí)候還是要走一次前臺(tái)排序,等於是做了一個(gè)畫蛇添足的處理。實(shí)際上如果我們定義成server排序回傳的資料就是要顯示的順序了。
絕對(duì)不能再走前端sort一下這個(gè)邏輯,不然後臺(tái)排序的意義是什麼還有如何保證邏輯跟後臺(tái)是一致的,一致的話頂多算是一個(gè)無用功,但是如果不能保證一致,這個(gè)就是一個(gè)大事故了。
解決方案:提供使用者一個(gè)設(shè)定項(xiàng),決定是前臺(tái)排序還是server排序。修改如下
需要修改的原始程式碼區(qū)域
修改之後的對(duì)應(yīng)區(qū)域的程式碼:
##測(cè)試的table在render的時(shí)候加入了sortType的設(shè)定
最後是sort的監(jiān)聽
最後的效果
以上是layui中table的sort排序介紹的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

layui 提供了多種取得表單資料的方法,包括直接取得表單所有欄位資料、取得單一表單元素值、使用formAPI.getVal() 方法取得指定欄位值、將表單資料序列化並作為AJAX 請(qǐng)求參數(shù),以及監(jiān)聽表單提交事件獲取資料。

layui 登入頁面跳轉(zhuǎn)設(shè)定步驟:新增跳轉(zhuǎn)代碼:在登入表單提交按鈕點(diǎn)選事件中新增判斷,成功登入後透過 window.location.href 跳到指定頁面。修改 form 配置:在 lay-filter="login" 的 form 元素中新增 hidden 輸入字段,name 為 "redirect",value 為目標(biāo)頁面位址。

使用 layui 傳輸資料的方法如下:使用 Ajax:建立請(qǐng)求對(duì)象,設(shè)定請(qǐng)求參數(shù)(URL、方法、資料),處理回應(yīng)。使用內(nèi)建方法:使用 $.post、$.get、$.postJSON 或 $.getJSON 等內(nèi)建方法簡化資料傳輸。

透過使用layui框架的響應(yīng)式佈局功能,可以實(shí)現(xiàn)自適應(yīng)佈局。步驟包括:引用layui框架。定義自適應(yīng)佈局容器,設(shè)定layui-container類別。使用響應(yīng)式斷點(diǎn)(xs/sm/md/lg)隱藏特定斷點(diǎn)下的元素。利用網(wǎng)格系統(tǒng)(layui-col-)指定元素寬度。透過偏移量(layui-offset-)建立間距。使用響應(yīng)式實(shí)用工具(layui-invisible/show/block/inline)控制元素的可見性和顯示方式。

layui與Vue的差異主要體現(xiàn)在功能和關(guān)注點(diǎn)上。 layui專注於快速開發(fā)UI元素,提供預(yù)製元件簡化頁面建置;而Vue則是全端框架,注重資料綁定、元件化開發(fā)和狀態(tài)管理,更適合建構(gòu)複雜應(yīng)用程式。 layui學(xué)習(xí)簡單,適合快速建立頁面;Vue學(xué)習(xí)曲線陡峭,但有助於建立可擴(kuò)展且易於維護(hù)的應(yīng)用程式。根據(jù)專案需求和開發(fā)者技能水平,可以選擇合適的框架。

layui框架是一款基於JavaScript的前端框架,提供了一套易用的UI元件和工具,幫助開發(fā)者快速建立響應(yīng)式網(wǎng)路應(yīng)用程式。其特點(diǎn)包括:模組化、輕量級(jí)、響應(yīng)式,並擁有完善的文件和社群支援。 layui廣泛應(yīng)用於管理後臺(tái)系統(tǒng)、電商網(wǎng)站和行動(dòng)裝置應(yīng)用程式等開發(fā)。優(yōu)點(diǎn)在於上手快、提升效率、維護(hù)方便,缺點(diǎn)是客製化較差、技術(shù)更新較慢。

layui是一個(gè)前端UI框架,它提供了豐富的UI元件、工具和功能,幫助開發(fā)人員快速建立現(xiàn)代化、響應(yīng)式和互動(dòng)式Web應(yīng)用程序,特點(diǎn)包括:靈活輕量、模組化設(shè)計(jì)、豐富的元件、強(qiáng)大的工具和易於自訂。它廣泛應(yīng)用於各種Web應(yīng)用程式的開發(fā)中,包括管理系統(tǒng)、電商平臺(tái)、內(nèi)容管理系統(tǒng)、社交網(wǎng)路和行動(dòng)裝置應(yīng)用程式。

layui 基於 HTML、CSS、JavaScript、jQuery、Less 和 Grunt 技術(shù),提供跨瀏覽器相容性、高可自訂性、易於使用、豐富的元件和活躍的社群支援。
