2011-10-23 3 views
5

Tôi đã thử dùng đường trục JS với đường ray và thực sự thích cách nó tổ chức lối vào. Tôi đã triển khai một giải pháp phân trang tương tự như giải pháp này ở đây https://gist.github.com/705733Backbone JS Pagination

Tôi chỉ tự hỏi vai trò của bộ sưu tập là gì và cách hoạt động của bộ sưu tập với kết quả được phân trang. Hiện tại, có vẻ như khi tôi tìm nạp các đối tượng mới từ cơ sở dữ liệu, chúng ghi đè nội dung trong bộ sưu tập hiện tại. Tuy nhiên, tôi có thể sử dụng {add: true} để thêm vào bộ sưu tập hiện tại. Điều này sau đó sẽ làm cho việc phân trang trở nên khó khăn hơn. Và làm thế nào về bộ nhớ đệm kết quả? Tôi có nên tạo một bộ sưu tập mới cho mỗi trang không?

Nếu có ai đó đã thực hiện việc này hoặc biết cách thực hiện thì sẽ rất hữu ích.

Trả lời

11

Nếu mục tiêu của bạn là để truy vấn & mục hiển thị khi một trang được yêu cầu, bạn có thể làm một cái gì đó tương tự (giả):

pages = {} 


// when page N is needed 
function fetch_page(n) { 
if (!pages[n]) { 
    pages[n] = new ItemsCollection({page: n}) 
    pages[n].fetch(); 
}  
} 

Vì vậy, bạn giữ một bộ sưu tập cho mỗi trang.

Nếu bạn cũng cần một bộ sưu tập của tất cả các mục được tìm nạp cho đến nay, chỉ cần giữ một - và thêm các mục đã tìm nạp vào nó mỗi lần bạn lấy chúng từ máy chủ.

+4

Xin cảm ơn dira, tôi đã thêm chúng vào một bộ sưu tập duy nhất và sử dụng dấu gạch dưới để lấy các phần tử (n) cuối cùng dựa trên mỗi trang. Làm việc một điều trị! – seogrady

+0

seogrady - Tôi biết đây là tin cũ, nhưng bạn có thể đăng mã yr không? – starsinmypockets