2010-02-25 13 views
5

Tôi muốn làm mới một trang vào một thời điểm cụ thể.Làm mới trang vào một thời điểm cụ thể trong ASP.NET

Từ http-equiv="refresh" content="30" trang đang làm mới rất 30 giây, Nhưng tôi muốn trang được làm mới vào thời gian cụ thể. như trang được làm mới vào 1:30 mỗi ngày.

+1

Mục tiêu của bạn là gì, vui lòng giải thích kịch bản? – theklc

+1

Có, bởi vì không hiểu mục tiêu, điều này hơi khó hiểu. Bạn sẽ phụ thuộc vào trình duyệt đang mở, giờ địa phương của máy, v.v. – Kitson

Trả lời

1
DateTime targetDate = ...; 
long secondsTilRefresh = Math.Floor((targetDate - DateTime.Now).TotalSeconds); 

Sau đó, chỉ cần sử dụng giá trị đó để điền vào thẻ làm mới meta. Tất nhiên, trình duyệt của họ có thể không mở được lâu và/hoặc trình duyệt có thể không hỗ trợ các giá trị lớn.

0

Làm mới trang có nghĩa là gửi yêu cầu đến máy chủ. Bạn có thể viết một Dịch vụ Windows gửi yêu cầu tới trang của bạn mỗi ngày vào lúc 1:30.

3

Bạn có thể sử dụng javascript để tạo đồng hồ đếm ngược bắt đầu khi trang được tải trong trình duyệt?

Thêm phần này vào trang của bạn:

<script language="javascript" type="text/javascript"> 
    setTimeout("window.location = 'yourpage.aspx'", <%= CalcMilisecsToNext130pm() %>); 
</script> 

Bạn có thể có thể hack cái gì cùng inline để có được số mili giây cho đến khi 01:30. Khác chỉ cần tạo phương pháp đơn giản trong codebehind của bạn ...

0

Tôi khuyên bạn nên sử dụng JavaScript khi tải trang để tính chênh lệch thời gian giữa bây giờ và thời điểm bạn muốn tải trang tiếp theo. Sau đó thiết lập một thời gian chờ (window.setInterval) để xảy ra tại thời điểm đó. Sau đó, bạn có thể đặt "vị trí" JavaScript vào cùng một trang và các trang tải nhanh vào thời gian đã lên lịch.

Jakob đánh tôi với nó! :)

0

thời gian máy chủ đặt này:

<% DateTime dte = DateTime.Now; %> 
<meta http-equiv="refresh" content="<%=86400 - (((dte.Hour * 60) + dte.Minute) * 60) %>"> 

cho thời gian dựa client sử dụng phương thức setTimeout javascript.

+0

Thao tác này không hoạt động, bạn có kiểm tra mã này không? :) – Vijjendra

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