繁体中文
设为首页
加入收藏
当前位置:网站制作首页 >> JavaScript教程 >> 应用实例:用Javascript实现定时任务

应用实例:用Javascript实现定时任务

2007-05-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:  作定时处理的话,我们首先考虑到的就是自己写个程序,然后把这个程序部署到Win的计划任务中。   这个程序可以是简单的批处理dat文件,也可以是一个js文件。当然更复杂的dll,exe也可以。   考虑到方便性...

  作定时处理的话,我们首先考虑到的就是自己写个程序,然后把这个程序部署到Win的计划任务中。

  这个程序可以是简单的批处理dat文件,也可以是一个js文件。当然更复杂的dll,exe也可以。

  考虑到方便性,易维护,我推荐用js文件。

  下面是个简单的js范例文件。

  他的功能是:访问一个页面,如果发现这个页面异常重起iis服务。

  把它部署到计划任务中,就可以对Web站点进行监控。

  if(!CheckUrl())

  {

  WScript.Echo("iisreset");

  var s = new ActiveXObject("WScript.Shell");

  s.Run("iisreset");

  }

  else

  {

  WScript.Echo("OK");

  }

  function CheckUrl()

  {

  try

  {

  var xh=new ActiveXObject("Microsoft.XMLHTTP");

  xh.open("GET","http://localhost/quickstart/aspplus/doc/businessobjs.aspx",false);

  xh.send("");

  return xh.status == 200;

  }

  catch( X )

  {

  return false;

  }

  }

  以上使用 Microsoft.XMLHTTP 如果一个站点没有响应,他会一直等下去。改成 MsXML2.ServerXMLHTTP 就可以避免这个问题。参考下面函数:

  function CheckUrl()

  {

  try

  {

  // 使用这个,可以设置超时时间,不用一直等待。

  var XMLServerHttp = new ActiveXObject("MsXML2.ServerXMLHTTP");

  var lResolve = 5 * 1000;

  var lConnect = 5 * 1000;

  var lSend = 15 * 1000;

  var lReceive = 15 * 1000;

  XMLServerHttp.setTimeouts(lResolve, lConnect, lSend, lReceive);

  XMLServerHttp.open("GET", "http://localhost/quickstart/aspplus/doc/businessobjs.aspx", false);

  XMLServerHttp.send();

  return XMLServerHttp.status == 200;

  }

  catch( X )

  {

  return false;

  }

  }

  如果你要访问的页面是需要身份验证的。

  请参考:

  oXMLHttpRequest.open(Method, Url, Async, User, Password)

  http://www.w3schools.com/dom/dom_http.asp

  以上解决方案,感谢Lostinnet和思归的帮助。

责任编辑:admin
相关文章