오늘은 테이블 정렬에 대해 이야기해 보겠습니다. 미리 말씀드리자면, 현재 테이블 페이징은 실제로 꽤 "지저분하다"고 생각합니다. 특히 그렇게 사용하는 학생들은 더욱 그렇습니다. 서버 정렬 중 어느 정도 비정상적인 상황이 발생합니다.
추천: layui 튜토리얼
먼저layui에 포함된 정렬의 효과를 살펴보세요. 사전에 의한 중국어 정렬은 이 논의의 초점이 아닙니다. 먼저 정수 음수가 있는 경우 0이 나타나는 상황을 살펴보십시오.
그러면 음수와 0에 대한 판단 논리가 맞도록 논리를 정렬로 조정하는 것이 가능한가요? 사실 이것은 이 논의의 초점이 아닙니다.
요점은 서버 정렬입니다. 사실 대부분의 테이블 정렬은 단순한 단일 페이지 정렬이 아니라 정렬을 위해 조건을 백그라운드로 전달하는 것이 일반적입니다. 그런 다음 조건을 다시 로드하고 통과하면 모두 정상이고 논리도 괜찮습니다.
근데 실제 효과는 뭔가요? 현재 테이블은 포그라운드 정렬과 서버 정렬을 구분하지 않기 때문에 데이터를 받아 테이블을 렌더링한 후 initSort가 있다고 판단한 후 다시 데이터를 정렬하여 표시하는 것은 매우 심각한 문제입니다!
분명히 서버가 정렬했는데 왜 js에서 다시 정렬해야 합니까? 더 진지하게, 정렬 결과가 백그라운드 정렬 규칙의 결과와 일치하는지 확인할 수 있습니까? 어떤 보증이 있나요?
다시 로드를 모니터링한 다음 음수
코드:
Effect
전작과 별 차이가 없다고 느끼실 수도 있지만, 그래도 정렬이 잘못된 것이 비정상입니다. 내 시뮬레이션에서 반환된 데이터의 구조를 살펴보세요
원본 데이터:
시뮬레이션된 인터페이스에서 반환된 데이터:
이 반환 후에 표시된 효과가 실제 순서와 일치하지 않는 것이 분명합니다. data
그 이유는 위에서 언급했듯이 실제로 배경 정렬을 보낼 때 렌더링 시 전경 정렬을 거쳐야 하는데 이는 불필요한 프로세스를 수행하는 것과 같습니다. 실제로 서버 정렬에 의해 반환되는 데이터를 정의하면 표시되는 순서가 됩니다.
이 논리를 정렬하려면 프런트 엔드 정렬을 사용하면 안 됩니다. 그렇지 않으면 백엔드 정렬의 의미는 무엇이며 논리가 백엔드와 일치하는지 확인하는 방법은 다음과 같습니다. 아무리 노력해도 소용없지만, 일관성을 보장할 수 없다면 큰 사고가 될 것입니다.
해결책: 사용자에게 포그라운드 기준으로 정렬할지, 서버 기준으로 정렬할지 결정할 수 있는 구성 항목을 제공하세요. 다음과 같이 수정
수정이 필요한 원본 코드 영역
수정 후 해당 영역의 코드:
테스트 테이블은 렌더링 시 sortType 구성을 추가했습니다
마지막으로 정렬 모니터링
마지막으로 효과
table.js에 대한 전체 테스트 코드 및 해당 수정 주소: https://pan.baidu.com/s/1OjwwVmjy02wRQ0rT1euLlQ
위 내용은 Layui의 정렬 테이블 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!