2009-03-18 8 views
8

Tôi đang tìm kiếm một khung lịch sử javascript để xử lý điều hướng bên trong một trang khi người dùng chọn nhiều tùy chọn thay đổi hành vi của trang.Trải nghiệm với Khung lịch sử Javascript

Có nhiều đồ tạo tác trên trang làm thay đổi tải dữ liệu của trang và tôi muốn lưu trữ điều này dưới dạng một tập hợp hành vi xếp chồng. Theo nghĩa rộng hơn, tôi muốn thêm điều này như một bộ công cụ cho các dự án web tương lai của tôi vì những lý do tương tự.

Tôi chủ yếu viết bằng ASP.NET với JQuery nhưng giờ đây tôi chỉ thực sự lo lắng về JQuery. Tôi viết các dự án khác bằng PHP, Python và Perl (tùy thuộc vào biểu diễn) nên nó sẽ phải là nền tảng bất khả tri.

Tôi đã tìm kiếm trên mạng và đã tìm thấy một vài nhưng chỉ một (được bao phủ trên OReilly) trông giống như nó sẽ phù hợp với hóa đơn. Tôi đã bắt đầu chơi với nó nhưng tôi muốn biết những gì bộ công cụ người khác đang sử dụng và những gì người khác muốn giới thiệu.

Vì vậy, nếu bạn có kinh nghiệm về các khung lịch sử, hãy xử lý nút quay lại (vv) trong Ajax, tôi muốn nghe về những gì bạn đã sử dụng và cách nó hoạt động. Nó thực sự sẽ giúp tôi thực hiện một sự lựa chọn cuối cùng trên thư viện.

Cảm ơn,

S

Trả lời

4

Tôi đã gặp sự cố tương tự trong khi trước đây chỉ xây dựng trang web flash. Chúng tôi đã thử:

  • Really Simple History (trong đó có một số vấn đề trong sự kết hợp của safari và flash)
  • ExtJS trong đó có một history component mà làm việc tuyệt vời cho chúng tôi. (Demo) [Bên cạnh chúng tôi đã sử dụng khung này cho các dự án khác.]
1

lẽ this question rất hữu ích cho bạn. Trong câu hỏi tôi đã liên kết với một trang thử nghiệm, nơi location.hash được sử dụng để theo dõi lịch sử. Tôi hiện đang sử dụng phương pháp này trong một bài kiểm tra và gặp sự cố với Opera (cắt bớt giá trị location.hash tại dấu chấm hỏi, bạn sẽ phải sử dụng: location.href.split(/#/)[1]) và dĩ nhiên IE (cần một khung nội tuyến). Trong IE với khung nội tuyến lịch sử được lưu cho phiên hiện tại chỉ. Nếu bạn tải một trang khác trong cùng một cửa sổ/tab và sử dụng nút quay lại để quay lại trang AJAX, lịch sử trước đó sẽ bị mất. Nó không phải là một thỏa thuận lớn đối với tôi, nhưng có thể gây phiền nhiễu. Tôi hiểu rằng lịch sử của IE8 nên hoạt động như mong đợi với location.hash, nó thậm chí phải có trình xử lý hashchange.

Tôi nghĩ hầu hết các khuôn khổ đều sử dụng cùng một kỹ thuật (theo dõi location.hash cho các thay đổi, sử dụng iframe cho IE). Tôi không muốn sử dụng một khung công tác, bởi vì tôi đang sử dụng khung công tác nhỏ của riêng mình và các khung công tác thông thường chứa quá nhiều chức năng mà tôi sẽ không bao giờ sử dụng.

1

Lịch sử jQuery là lựa chọn ưa thích của tôi. Nó có thể được tìm thấy ở đây: http://www.balupton.com/projects/jquery-history/ Cung cấp hỗ trợ trình duyệt chéo, gắn kết với băm, quá tải băm, tất cả các phần còn lại.

Ngoài ra còn có một phần mở rộng Ajax cho nó gọi là jQuery ajaxy, cho phép nó dễ dàng nâng cấp trang web của bạn vào một ứng dụng Ajax thích hợp mà không cần phải thay đổi phía máy chủ và SEO còn lại và thân thiện JS-Disabled: http://www.balupton.com/projects/jquery-ajaxy/

Nhìn chung họ đều được tài liệu, hỗ trợ và giàu tính năng.Họ cũng đã giành được một câu hỏi tiền thưởng ở đây How to show Ajax requests in URL?

0

Dial.js là một khung lịch sử trình duyệt JavaScript được thiết kế để cung cấp một số tính năng của khung công tác MVC đầy đủ với jQuery và History.js cho các ứng dụng một trang (SPA).