2010-02-23 31 views
6

Giả sử tôi có trang "báo cáo" có thể được tùy chỉnh qua Javascript. Giả sử tôi có ngày bắt đầu, ngày tháng và loại ("đơn giản" hoặc "đầy đủ") có thể thay đổi. Bây giờ Tôi muốn thanh địa chỉ luôn chứa "liên kết cố định" của chế độ xem (tùy chỉnh) hiện tại, do đó người dùng có thể dễ dàng sao chép nó.Thực hành tốt nhất Permalink cho các trang ajax

Nếu tôi làm điều này mà không có Ajax, tôi sẽ chỉ sử dụng một cái gì đó như "/ report /? Start_date = 2010-01-01 & end_date = 2010-01-31 & type = full" làm liên kết cố định. Nhưng kể từ khi tôi muốn cập nhật các URL từ Javascript, tôi cần phải sử dụng các neo (#), nếu không toàn bộ trang sẽ cần phải được tải lại.

Có phương pháp hay nhất nào về cách tạo liên kết cố định trong trường hợp này không? Tôi sẽ đi với một cái gì đó như "/ report/# start_date = 2010-01-01, end_date = 2010-01-31, nhập = đầy đủ" và phân tích cú pháp điều đó trong Javascript. Có cách nào tốt hơn hoặc được chấp nhận chung hơn để giải quyết vấn đề này không?

Ngoài ra, có cách nào tốt hơn để đối phó với phía Javascript thay vì chỉ phân tích cú pháp mọi thứ?

Cảm ơn.

Trả lời

0

Nếu bạn có một nhóm các liên kết trỏ đến các nguồn lực miền, cách tốt nhất để làm là:

  • rời khỏi url như họ đang có (với chuỗi truy vấn như some/site?start=4&end=10)
  • add một lớp học để các liên kết này, trong đó cung cấp một cái móc cho javascript của bạn

    <a href=".." class="ajax">Some resource</a>

  • kế hoạch trên wh ở kiểu dữ liệu của phản ứng họ sẽ sản xuất (bản rõ, xml, JSON, html)
  • làm backend quyết định liệu có nên trở lại trang đầy đủ hoặc một phản ứng đối với ajax gọi
  • cách này các trang vẫn truy cập được

Ví dụ, trong PHP bạn có thể dễ dàng nhìn vào $ _SERVER biến và quyết định có nên trả về phản hồi đầy đủ trang hoặc sẵn sàng để đáp ứng ajax:

function isXmlHttpRequest() 
{ 
    return isset($_SERVER[ 'HTTP_X_REQUESTED_WITH' ]) && 
     ($_SERVER[ 'HTTP_X_REQUESTED_WITH' ] == 'XMLHttpRequest'); 
} 

tài nguyên trang địa phương

html như:

<a href="#first">First</a> 
<a href="#second>Second</a> 

<div id="first">lorem</div> 
<div id="second">ipsum</div> 

Bạn không cần phải phân tích bất cứ điều gì, tất cả các bạn phải làm là chỉ để hiển thị div đúng với id, mà bạn sẽ trực tiếp lấy từ a[href] .. Đây là được coi là một thực hành tốt, vì trang của bạn vẫn có thể truy cập ngay cả khi JS đã tắt.

+0

Xin lỗi, nhưng tôi không thấy cách này trả lời câu hỏi của tôi. Nếu câu hỏi của tôi không đủ rõ ràng, vui lòng thêm một số nhận xét và giúp tôi cải thiện nó. – ibz

+0

Tôi đã đánh dấu phần quan trọng nhất trong câu hỏi của mình trong ** bold ** (hiện tại).Tôi đoán bạn đã bỏ qua điều đó, vì câu trả lời của bạn không thực sự che đậy nó. – ibz

Các vấn đề liên quan