Ajax / Jquery每隔一段时间调用一次web方法/服务'秒

时间:2015-05-15 22:21:03

标签: javascript jquery asp.net ajax vb.net

我有一个ASP.Net网络应用程序,在客户端实现了jquery。客户端jquery脚本在服务器端代码中对Web方法进行异步调用。该调用返回jquery用于更新用户的状态打开记录(活动/非活动)。目标是让jquery重复调用服务器,一旦打开记录处于非活动状态,那么我们需要向用户显示消息,以便您不再与此记录关联。我将TimeInterval设置在一个关闭< strong> HiddenFieldValues 并传递给Jquery / ajax函数。

此函数在单独的JavaScript文件中编写,并在我的ASPX页面脚本管理器中引用。我必须通过&#39; interval&#39;从服务器端,在.config文件中配置。

function myWebServiceFunction(val1, val2, val3, interval) {
                $.ajax({
                    type: "POST",
                    url: "/Application/WebServices/MyService.asmx/CheckFunction",
                    data: "{'val1':'" + val1 + "','val2':'" + val2 + "','val3':'" + val3 + "'}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    async: true,
                    success: function (msg) {
                        debugger;
                        var obj = function callbackfunction() {
                            myWebServiceFunction(HealthCarrierShortName, authID, networkID, interval)
                        }
                        if (!msg.d) {


                            window.setTimeout(obj, interval);
                        }
                        else {
                            // Still need to implement how to display to user if the record is not long associated to that user. help me in this too
                        }
                    },
                    error: function (xhr, ajaxOptions, thrownError) {
                        alert('AJAX failure');
                    }
                });
            }

在我的服务器端,我在Page_load方法结束时使用 RegisterStartUpScript 并调用该JQuery函数

        ScriptManager.RegisterStartupScript(Me.Page, Page.GetType(), "AuthLockPolling", " myWebServiceFunction('" + val1HiddenField.Value + "','" + val2HiddenField.Value + "','" + val3HiddenField.value+ "','" + val4HiddenField.value+  ");", True)

但它不能正常工作(不完全知道原因)。我的Jquery函数根本没有被调用。我通过将调试器放入我的脚本进行测试并且没有被命中。

如果该记录与该用户的关联时间不长,仍需要实现如何向用户显示消息,如警报窗口/弹出窗口中所示。请帮我这一部分。

请告诉我错误的原因以及如何解决这个问题。在此先感谢!

1 个答案:

答案 0 :(得分:1)

如何解决这个问题:

RegisterStartupScript可能令人困惑(问我怎么知道!)。您是否在使用部分页面更新的页面上使用此功能(即,具有UpdatePanel控件)?如果没有,您应该使用ClientScriptManager(而不是ScriptManager)类中的方法。

如果它在具有部分页面更新的页面上用于内部 UpdatePanel的控件,则第一个参数应该是UpdatePanel内的控件,而不是而不是Page

调试提示:通过传递简单的JavaScript代码进行测试,例如alert('Hello, World!');。这可以帮助您判断问题是在RegisterStartupScript调用中还是在myWebServiceFunction函数中。

最后,这里是Microsoft文档:https://msdn.microsoft.com/en-us/library/bb310408(v=vs.110).aspx。因为在不同的类中有相同名称的方法,请阅读verwy,verwy,carefulwee文档。