我一直在研究的.NET应用程序挂在某个函数调用上。我想知道事件处理程序是否可以“触发”C#函数而不是调用它并等待返回;换句话说,我需要它继续运行Javascript代码而不是等待。我将如何实现此功能?
以下是代码大纲:
的Javascript
// Called by Javascript function ScrollHandler()
void UserScroll()
{
//...
UpLoadJson();
}
void UpLoadJson()
{
//...
browser.Document.InvokeScript("drawTimeline", new String[] {data});
}
C#
->
使用“ScrollHandler(/*JS*/) -> UserScroll(/*C#*/) -> UpLoadJson(/*C#*/) -> drawTimeline(/*JS*/)
”表示函数调用,我认为正在发生的事情是:
drawTimeline()
但是Javascript无法运行ScrollHandler()
,因为它正在等待drawTimeline()
先返回;但是,在调用ScrollHandler()
之前,这不会返回。我需要UserScroll()
才能返回,而无需等待 $(document).ready(function() {
$.ajax({
url: window.external.HandleScroll(left, right),
type: "GET"
})
// seems like this part would be optional, since calling HandleScroll() will
// result in the draw function if it needs to
/*.done(function (jsondata) {
drawTimeline(jsondata);
})*/
.fail(function (err) {
alert(err.statusText);
});
});
返回。
@fabjan代码:
$messages = $this->Message->find('all', array(
'conditions' => array('Message.status'=> 'progress'),
'ORDER' => 'MessageDetail.created_date ASC'
));
答案 0 :(得分:0)
尝试使用JQuery Ajax get / post请求和回调方法:
$.ajax({
url: (your controller/actionname),
type: "GET",
}).done(function (jsondata) {
some code here...
}).fail(function (err) {
alert(err.statusText);
});