javascript+;asp.net-从c#调用javascript函数并传递对象
我对网络开发相当陌生 基本上,我使用HTML5画布来呈现内容,使用javascript函数来清除并呈现画布 我希望调用一个web服务来获取会影响内容的数据,我认为这在C#中最容易实现,我想知道如何使用它来定期调用javascript函数来更新呈现到画布上的值 为了更清楚地说明这一点,我有这样的想法: 哦,顺便说一下,我也在使用jquery,部分原因是我被告知要这么做 Page.asp:javascript+;asp.net-从c#调用javascript函数并传递对象,c#,javascript,asp.net,html,canvas,C#,Javascript,Asp.net,Html,Canvas,我对网络开发相当陌生 基本上,我使用HTML5画布来呈现内容,使用javascript函数来清除并呈现画布 我希望调用一个web服务来获取会影响内容的数据,我认为这在C#中最容易实现,我想知道如何使用它来定期调用javascript函数来更新呈现到画布上的值 为了更清楚地说明这一点,我有这样的想法: 哦,顺便说一下,我也在使用jquery,部分原因是我被告知要这么做 Page.asp: <body> <form id="form1" runat="server">
<body>
<form id="form1" runat="server">
<canvas id="canv" width="200" height="200">
Cannot display canvas because your web browser is a fail.
</canvas>
<script type="text/javascript">
var ctrls = new Array();
$(document).ready(function () {
var canvas;
var context;
canvas = $("#canv").get(0);
if (!canvas) {
alert("Failed to get canvas");
return;
}
context = canvas.getContext('2d');
if (!context) {
alert("Failed to get context");
}
var x;
x = new Object();
x.value = 0;
x.parent2d = context;
ctrls.push(x);
window.setInterval(Render, 25);
});
function Render() {
var i;
for (i = 0; i < ctrls.length; i++) {
ctrls[i].parent2d.clearRect(0, 0, 200, 200);
//Draw stuff.
}
}
function Update(newVal) {
var i;
for (i = 0; i < ctrls.length; i++) {
ctrls[i].value = newVal; //For example
}
}
</script>
</form>
</body>
无法显示画布,因为您的web浏览器失败。
var ctrls=新数组();
$(文档).ready(函数(){
var帆布;
var语境;
canvas=$(“#canv”).get(0);
如果(!画布){
警报(“未能获取画布”);
返回;
}
context=canvas.getContext('2d');
如果(!上下文){
警报(“获取上下文失败”);
}
var x;
x=新对象();
x、 数值=0;
x、 parent2d=上下文;
中心推力(x);
设置间隔(渲染,25);
});
函数Render(){
var i;
对于(i=0;i
从C#(Page.asp.cs)调用Update(newVal)函数的最简单方法是什么(如果可能的话),以及如何设置为定期执行?
对哪些对象可以传递给此函数有什么限制
Dictionary<String, Double>
字典
这将非常有用。页面加载后究竟什么时候需要调用update?如果是每五秒钟一次,那么仔细地设置某种基于Javascript的间隔可能会更容易(确保您检查了某些条件,以确保在出现任何错误条件时,间隔退出) 根据您所拥有的数据,您可能希望在C#中设置一个方法,该方法给定某些POST或通过jQuery$.ajax()调用将参数传递给它 例如:
$(document).ready(function() {
var intervalId = setInterval("runUpdate()", 5000);
});
function runUpdate() {
//Make an ajax call here, setting up a variable called 'data'
update(data);//Data is newVal, which was setup in the ajax call above
}
该代码将每五秒钟运行一次更新功能。首先,从Javascript开始,我通常会避免使用基于xml的web服务。返回的数据是XML,它有许多不必要的标记,这可能会导致传输缓慢 相反,看看JSON。快多了。然而,身份验证并不那么容易。为了帮助你理解它的威力,twitter和facebook都在那里使用它 JQuery可以非常轻松地使用JSON
$.getJSON(someurl, function(jData) {
//use returned data
}
您可能会发现阅读以下内容很有用:
希望这能有所帮助。您好,定期调用web服务(例如,每10秒)时会调用更新。我更喜欢从C#调用web服务,否则你知道一个好的ajax教程吗?或者,如何从javascript调用C#方法将是一个好的解决方案。Jquery的$.ajax()方法相当简单:一旦你用C#设计了一个方法来处理Jquery用ajax发送的任何参数,然后传回一个基于文本的值。$。ajax(键入:“POST”,数据:info_variable_发送给_c_sharp,url:“/Your/Site/method”,成功:function(){//Do something here,it work},错误:function(){//Do something here,it failed});本质上,动作序列的高级视图是这样的:1。页面加载2。Javascript创建10秒计时器3。每隔十秒钟,调用“runUpdate”javascript函数4。runUpdate执行ajax请求,从应用程序5中获取“新值”。runUpdate使用前面提到的“新值”6调用update()。步骤3-5一直重复到时间结束。我如何获得返回值?web服务不是我的部门,因此我很不幸地被XML服务卡住了!