这是我需要表达的 IA。(树模型)
about us
company
history
location
ceo
product
mobile
iphone
galaxy 3
这是我需要制作的 HTML DOM。如您所见,depth2
并且depth3
(最多 5 或 6 个)位于同一级别的 DOM 中,并且 depth1 将它们作为子级。(由于 CSS,我必须这样做)
<div class="depth1"><span>about us</span>
<div class="depth2">company</div>
<div class="depth2">ceo</div><!--CEO is here! not below "location" -->
<div class="depth3">history</div>
<div class="depth3">location</div>
</div>
<div class="depth1"><span>product</span>
<div class="depth2">mobile</div>
<div class="depth3">iphone</div>
<div class="depth3">galaxy 3</div>
</div>
并且数据是mysql
这样插入的。(p_id
表示父母的身份证)
id(pk) p_id level order name
------------------------------------------
1 root 0 0 -
2 1 1 100 about us
3 7 2 100 mobile
4 5 3 200 location
5 2 2 100 company
6 5 3 100 history
7 1 1 200 product
8 3 3 100 iphone
9 3 3 200 galaxy
10 2 2 200 ceo
我试过order by level, order
但结果不正确。(顺序应与 HTML DOM 顺序相同)
id(pk) p_id level order name
------------------------------------------
1 root 0 0 -
2 1 1 100 about us
7 1 1 200 product
3 7 2 100 mobile
5 2 2 100 company
10 2 2 200 ceo
8 3 3 100 iphone
6 5 3 100 history
4 5 3 200 location
9 3 3 200 galaxy
我如何订购与 HTML 订单相同的订单?
最难的部分是depth2
或depth3
在其父级(深度1)下方(作为一个组)。
id(pk) p_id level order name
------------------------------------------
1 root 0 0 -
2 1 1 100 about us
5 2 2 100 company
10 2 2 200 ceo
6 5 3 100 history
4 5 3 200 location
7 1 1 200 product
3 7 2 100 mobile
8 3 3 100 iphone
9 3 3 200 galaxy 3
我做了一个jQuery
代码来解决我的问题。但我不能申请jQuery
,因为实际数据太大(数百),重新排列 HTML 元素需要一些烦人的时间。我不能负担客户端。
我搜索了如何提高 jQuery 性能。但我必须考虑禁用用户的 javascript。
请分享您的不同观点或新鲜想法甚至技巧。(表达语言是JSP)谢谢。