[英]Calling code behind method from javascript?
我在代碼中有方法:
protected void myMethod()
{
Literal1.Text = System.DateTime.Now.ToString();
}
我需要每秒調用這個方法。 我發現我應該使用javascipt,這是我的scipt:
<script>
function test() {
// ???
}
setInterval(test, 1000);
</script>
但我不知道如何從JavaScript調用myMethod?
使用AJAX。 https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started這將允許您從客戶端調用指定的服務器端方法。
從上面的鏈接:
function makeRequest(url) {
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
httpRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
try {
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
if (!httpRequest) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
httpRequest.onreadystatechange = alertContents;
httpRequest.open('GET', url);
httpRequest.send();
}
function alertContents() {
if (httpRequest.readyState === 4) {
if (httpRequest.status === 200) {
alert(httpRequest.responseText);
} else {
alert('There was a problem with the request.');
}
}
}
})();
您必須使用[WebMethod]
屬性修飾服務器端方法,並將其聲明為public和static。 http://msdn.microsoft.com/en-us/library/byxd99hx(v=vs.90).aspx
來自MSDN:
[System.Web.Services.WebMethod(EnableSession=true)]
public int GetNumberOfConversions()
{
return (int) Session["Conversions"];
}
就這么簡單。
但是,我必須質疑每秒從客戶端到服務器調用一個方法。 您可以單獨使用JavaScript處理該日期業務。 對你來說,往返旅行並不順利,我敢打賭。
如果你想避免服務器往返,這可能是因為網絡延遲,你可以像這樣使用javascript
var now = new Date();
dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT");// Saturday, June 9th, 2007, 5:46:21 PM
查看http://blog.stevenlevithan.com/archives/date-time-format以查看可能的其他類型的日期格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.