WCF服务,ASP.NET AJAX动态更新页面(即时数据)的问题。

一个模拟即时显示股票价格的程序。首先用SQLServer2008建立一个数据库(Stocket),表格(NowStockPrice),然后我写了一个程序每0.5秒更新这个... 一个模拟即时显示股票价格的程序。
首先用SQLServer2008建立一个数据库(Stocket),表格(NowStockPrice),然后我写了一个程序每0.5秒更新这个Table,用随机数模拟股票价格变动(作为一个简单的例子仅仅象征性的做了5个股票的5条数据)。
随后建立一个WCF服务,提供一个得到表格内容的方法,返回JSON的字符串。
最后建立一个ASP.NET页面,在Body元素的OnLoad事件中启动一个定时器,这个定时器每1秒钟调用前面的WCF服务,利用返回的字符串更新自己的内容。页面最开始被送到客户端的时候是没有任何数据内容的的,只有一个空的<Table>,也就是说从最开始的显示开始就需要依靠定时器中的AJAX来显示数据。

现象:只有最初的一次数据可以正常显示,然后就不会有任何变动(不随着时间而改变),利用AJAX调用WCF服务返回的字符串总是相同的,F5刷新也没有用。如果关掉页面重新打开则内容会改变。

可能是缓存的问题。我用WCF服务端同样的代码写了一个Console程序,该程序可以显示即时数据。现在问题可能出在WCF服务身上,也可能是ASP.NET页面的问题,我在Web方面是个新手,摸不到头脑,希望大侠执教。

部分代码:
WCF服务的代码
[ServiceContract(Namespace = "WCFService")]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Service
{
const string CONNECTTIONSTRING ="*******";

[OerationContract]
[WebGet]
public string GetDatas()
{......}
.....}

WCF服务的配置
<service behaviorConfiguration="ServiceBehavior" name="WCFService.Service">
<endpoint address="" behaviorConfiguration="ajaxBehavior" binding="webHttpBinding" contract="WCFService.Service">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
...
<endpointBehaviors>
<behavior name="ajaxBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>

客户端
<body onload="startSetDatas();">
<form id="form2" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="Service.svc" />
</Services>
</asp:ScriptManager>

function startSetDatas() {
setInterval(getDatas, 1000);
}

function getDatas() {

try {
WCFService.Service.GetDatas(onUpdateTable, onFault);
}
catch (msg) {
alert(msg);
}
}

function onUpdateTable(result) {
alert(result);//这里的结果就已经总是相同的了
eval("var response = " + result+"; ");

var tbodyelement = document.getElementsByTagName("tbody")[0];
......更新页面内容
}
......页面具体内容

万分感激!
问题解决,参照
http://www.javaeye.com/wiki/topic/4643
xmlhttp如果用Get方法,参数不变反复调用的话会反复的从Cache中取数据。很简单的一个小问题。
就一个答案,写的不算太正确,不过就给分好了。
展开
 我来答
秋天的秋风秋bG
2010-11-08 · TA获得超过605个赞
知道小有建树答主
回答量:1205
采纳率:0%
帮助的人:506万
展开全部
这个问题我也不是很清楚
我建议您在 做这个查下的时候不要使用缓存
直接 每5秒自动查下一次 更新上去 你看下行不
Storm代理
2023-07-25 广告
StormProxies是一家提供动态代理服务器服务的企业,旨在帮助用户更好地管理网络访问和安全。以下是一些关于StormProxies的IP动态代理服务的特点:1. 高匿名性:StormProxies的动态代理服务器具有高匿名性,可以有效... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式