修复排序问题和初始入口问题
This commit is contained in:
+5
-5
@@ -122,7 +122,7 @@ func (c *urlKeywordsCache) ListAll() []*urlKeywordsEntry {
|
||||
return entries
|
||||
}
|
||||
|
||||
// ListPage 返回分页缓存条目(按访问时间从旧到新,支持跳过头部条目)
|
||||
// ListPage 返回分页缓存条目(按访问时间从新到旧,最新访问的在前)
|
||||
func (c *urlKeywordsCache) ListPage(page, pageSize int) []*urlKeywordsEntry {
|
||||
c.mu.RLock()
|
||||
defer c.mu.RUnlock()
|
||||
@@ -131,16 +131,16 @@ func (c *urlKeywordsCache) ListPage(page, pageSize int) []*urlKeywordsEntry {
|
||||
if offset >= total {
|
||||
return []*urlKeywordsEntry{}
|
||||
}
|
||||
// 遍历到起始位置
|
||||
elem := c.order.Front()
|
||||
// 从 Back(最新)向前遍历,跳过 offset 个
|
||||
elem := c.order.Back()
|
||||
for i := 0; i < offset && elem != nil; i++ {
|
||||
elem = elem.Next()
|
||||
elem = elem.Prev()
|
||||
}
|
||||
// 收集 pageSize 条
|
||||
entries := make([]*urlKeywordsEntry, 0, pageSize)
|
||||
for i := 0; i < pageSize && elem != nil; i++ {
|
||||
entries = append(entries, elem.Value.(*urlKeywordsEntry))
|
||||
elem = elem.Next()
|
||||
elem = elem.Prev()
|
||||
}
|
||||
return entries
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user