我的应用流程
在我的应用程序 - 仪表板中,
我有SignalR脚本,当新数据从设备到达时,它会获取新数据
它还有一个ajax脚本,可以在Controller上点击后端获取数据 - 单击“获取”按钮时。
否则
上面的Ajax Call Point#2获取数据的时间非常短。
任何想法,更好的方法,......即使SignalR不断获取数据,我仍然可以避免ajax调用#2的缓慢。
这是我的#2 Ajax Call ==>致电Home
控制器操作方法SignalList
$('#DeviceID').on('change', function () {
$('#DeviceName').text("Device : " + $('#DeviceID option:selected').text());
$.ajax({
url: "/Home/SignalList",
type: "POST",
data: { deviceID: $('#DeviceID').val() },
//contentType: "application/json; charset=utf-8",
dataType: "html",
//cache: false,
//async: true,
success: function (result) {
//alert("AAA");
$('#signalCheckListBox').html(result);
},
failure: function (response) {
alert(response.responseText);
},
error: function (response) {
alert(response.responseText);
}
});
这是SignalR脚本
(function () {
// Defining a connection to the server hub.
var signalHub = $.connection.signalHub; //alert("ACCC");
// Setting logging to true so that we can see whats happening in the browser console log. [OPTIONAL]
$.connection.hub.logging = true;
// Start the hub
$.connection.hub.start();
// This is the client method which is being called inside the SignalHub constructor method every 3 seconds
signalHub.client.SendSignalData = function (signalData) {
dModel = signalData;
updateSignalData(signalData);//<============ # Statekemnt A
};
$.connection.hub.disconnected(function () {
setTimeout(function () {
$.connection.hub.start();
}, 5000); // Restart connection after 5 seconds.
}); }());
上面标记的语句A 是一种方法,它(1)更新UI中的不同html元素,并且(2)在条件上发送电子邮件。
对于发送电子邮件,它也会命中同一个控制器Home
(??? 这会是问题??? )
电子邮件ajax调用低于==&gt;它调用Home
控制器操作方法Communicate
function email(alarmSignalInfo) {
$.ajax({
url: "/Home/Communicate",
type: "POST",
dataType: "json",
//data: { alarmSignalInfo: JSON.stringify(alarmSignalInfo) },
data: { alarmSignalInfo: alarmSignalInfo },
//cache: false,
//async: true,
success: function (result) { onSuccess(result); }
}); }