网页:DIV按日期动态载入HTML或者什么文件? AJAX? ASP?
发布网友
发布时间:2022-05-24 13:08
我来回答
共2个回答
热心网友
时间:2023-10-14 23:02
用javascript或ajax的话,会根据客户端日期显示,有可能出错,用服务端程序则不存在这个问题。
ASP就很简单,用FSO组件读取指定文件并显示在相应DIV中。
下面代码测试过没问题,前面的ASP程序除了设置的日期外,其他不用修改,后面根据你实际的代码调用strDiv1....变量。
把程序放在首页里,然后把首页文件名改为index.asp。注:如果虚拟主机的默认文档没有index.asp的话,那还要添加一下,有支持asp的应该会有。
<%
Dim strDate1,strDate2,strDate3,strDate4,strDate5,strDate6
Dim strDiv1,strDiv2,strDiv3,strDiv4,strDiv5,strDiv6
'设置6个DIV对应的6个日期
strDate1="2012-2-16"
strDate2="2012-2-18"
strDate3="2012-2-20"
strDate4="2012-2-22"
strDate5="2012-2-24"
strDate6="2012-2-26"
Select Case CStr(Date())
Case strDate1 strDiv1=GetHTML("NO1-"&strDate1&".HTM")
Case strDate2 strDiv2=GetHTML("NO2-"&strDate2&".HTM")
Case strDate3 strDiv3=GetHTML("NO3-"&strDate3&".HTM")
Case strDate4 strDiv4=GetHTML("NO4-"&strDate4&".HTM")
Case strDate5 strDiv5=GetHTML("NO5-"&strDate5&".HTM")
Case strDate6 strDiv6=GetHTML("NO6-"&strDate6&".HTM")
End Select
Function GetHTML(FileName)
Dim FilePath
Dim objFSO,objTemp
FilePath=Server.Mappath("inc/"&FileName)
Set objFSO=Server.CreateObject("Scripting.FileSystemObject")
If Not objFSO.FileExists(FilePath) Then
GetHTML=""
Exit Function
End If
Set objTemp=objFSO.OpenTextFile(FilePath)
If Not objTemp.AtEndOfStream then
GetHTML=objTemp.ReadAll
End If
objTemp.Close
Set objTemp=Nothing
Set objFSO=Nothing
End Function
%>
<html>
<head>
<title>无标题文档</title>
</head>
<body>
<div id="div1" style="background:#deefff;">1:<%=strDiv1%></div>
<div id="div2" style="background:#ffffff;">2:<%=strDiv2%></div>
<div id="div3" style="background:#deefff;">3:<%=strDiv3%></div>
<div id="div4" style="background:#ffffff;">4:<%=strDiv4%></div>
<div id="div5" style="background:#deefff;">5:<%=strDiv5%></div>
<div id="div6" style="background:#ffffff;">6:<%=strDiv6%></div>
</body>
</html>追问能给个类似
var mydate = new Date();
var mymonth = mydate.getMonth()+1;
var myday = mydate.getDate();
var myyear = mydate.getYear()+1900;
代替那个条件选择吗?我觉得换成函数更方便些,求解
追答Select Case CStr(Date())
End Select
这个比if end if简单,只是你这里可选条件比较多,看起来代码比较长,其实我已经简化过了,把获取代码的封装成函数了,其他的就没必要了。
热心网友
时间:2023-10-14 23:02
如只是实现你的这个功能,不一定要用什么服务端技术。在页面加载时,用JS代码就计算出日期及要访问的页面,通过Ajax技术在DIV中显示相应的内容就好了。也就几句代码,纯原始JS通过XMLHTTP对象就可以搞定,当然要对各浏览器兼容性方面要求比较高,可以用相应的JS框架库。如jQUery、Dojo等。
服务端技术嘛,ASP安全性不高,不建议使用;用PHP或asp.net会比较好些。追问求具体代码
追答window.onload = function() {
var mydate = new Date();
var mymonth = mydate.getMonth()+1;
var myday = mydate.getDate();
var myyear = mydate.getYear()+1900;
var url = "inc/" + myyear + '-' + mymonth + '-' + myday+ ".htm";
var xmlHttp=new ActiveXObject('Microsoft.XMLHTTP');
xmlHttp.onreadystatechange=function() {
if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {
var someDiv = document.getElementById('div1'); // 这是你的DIV
someDiv.innerHTML=xmlHttp.responseText;
}
}
xmlHttp.open('GET', url,true);
xmlHttp.send(null);
}