//C#代码
public void GetJsonDate()
{
object o = System.Windows.Browser.HtmlPage.Window.Eval("GetJsonDate();");
if (o != null)
{
if (o.ToString() == "over")
{
LoadValue();
System.Windows.Threading.DispatcherTimer dti = new System.Windows.Threading.DispatcherTimer()
{
Interval = TimeSpan.FromMilliseconds(3000)
};
dti.Tick += (s, e) =>
{
dti.Stop();
GetJsonDate();
};
dti.Start();
}
else
{
DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(Optical));
System.IO.MemoryStream ms = new System.IO.MemoryStream(System.Text.Encoding.Unicode.GetBytes(o.ToString()));
opticallist.Add((Optical)json.ReadObject(ms));
GetJsonDate();
}
}
}
//DataContractJsonSerializer 需要引用using //System.Runtime.Serialization.Json;
//System.Runtime.Serialization;
//System.ServiceModel
/*
*思路:如果javascript传入over字符串 读取让数据并3秒继续执行,否则继续获取
*/
window.onload = function () {
// slHost = document.getElementById("silverlightControl");
// page = slHost.contentDocument;
GetDate();
};
function GetDate() {
$.post('/Page/TeleCable/GetData.aspx', { equipid: 4 }, function (data) {
jsondate = data;
});
setTimeout(GetDate, 3000);
}
function GetJsonDate() {
if (jsondate) {
if (jsonCount < jsondate.length) {
var j = jsondate[jsonCount];
jsonCount++;
return (JSON.stringify(j));
}
else {
jsonCount = 0;
jsondate = null;
return "over";
}
}
}
JSON这个对象 IE8等等以下低版本的浏览器是没有 这里要注意