2013-04-15 35 views
6

Tôi muốn một hàm chỉ được thực hiện trên lần tải trang đầu tiên chứ không phải khi trang được làm mới.Chạy hàm trên lần tải trang đầu tiên không phải trên trang làm mới trong javascript

Ví dụ: không nên thực thi khi người dùng nhấp vào nút gửi hoặc làm mới trang khác.

Tôi có thể tránh nó trong .net bằng cách sử dụng thuộc tính ispostback, nhưng làm cách nào tôi có thể làm điều này trong JavaScript?

+4

Tôi cho rằng bạn có thể sử dụng 'sessionStorage' để theo dõi. –

+0

Tôi đã đề nghị sessionStorage quá dơ bẩn của nó, tôi đoán nhưng nó hoạt động –

+0

Có lẽ nó không quan trọng, nhưng chức năng đó sẽ làm gì? –

Trả lời

0

Vì bạn sử dụng asp và kiểm tra postback là ok cho bạn, chỉ cần hiển thị cờ phía máy khách;

trong aspx:

<script type="text/javascript">window.ispostback = <%= Page.IsPostBack %>;</script> 

trong kịch bản client:

if (!window.ispostback) { 
    // do stuff 
}; 
1

Vì vậy, bạn muốn bắt chỉ xem trang đầu tiên. Nó còn được gọi là unique page view. Và sau đó có các lần xem trang, được tăng lên ở mỗi lần tải lại trang.

Người đầu tiên cần được theo dõi quản lý phiên truy cập (ví dụ: sử dụng cookie). Lần đầu tiên trang được truy cập, cookie được đặt và bộ đếm tăng lên. Nếu trang được truy cập lại nếu cookie đã được đặt, bộ đếm sẽ không được tăng lên. Trừ khi cookie đã bị xóa và người dùng đã thay đổi trình duyệt.

Bước thứ hai sẽ được tăng lên nhiều lần tại mỗi lần làm mới trang. Dễ dàng đạt được thông qua javascript. Để quản lý trạng thái làm mới trang theo chương trình, tôi đề xuất bạn this answer. Để quản lý động việc thực thi tập lệnh, tôi đề xuất bạn ClientScriptManager.

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