【问题标题】:How to detect client call to server either via page load or ajax in Javascript?如何通过页面加载或 Javascript 中的 ajax 检测客户端对服务器的调用?
【发布时间】:2016-01-29 18:39:51
【问题描述】:

我使用 cordova 构建了一个完全位于服务器端的移动应用程序。当用户离线并与应用程序交互时,这会导致糟糕的体验。我想检测应用程序何时将调用服务器并提醒用户他们离线。

我有 cordova-plugin-network-information 所以我知道客户端何时离线。当我知道应用程序将调用服务器时,我计划处理离线情况。挑战在于以优雅和干净的方式做到这一点。

我的应用既有同步页面加载,也有 ajax 调用。蛮力的方法是找到所有此类呼叫并通过离线警报处理它们。

有没有办法在 Javascript 中检测对服务器的调用(通过页面加载或 ajas 调用),以便我可以将离线处理集中在一个地方?

【问题讨论】:

    标签: javascript jquery cordova cordova-plugins


    【解决方案1】:

    试试这个。

    _send = XMLHttpRequest.prototype.send;
    XMLHttpRequest.prototype.send = function() {
    
        /* Wrap onreadystaechange callback */
        var callback = this.onreadystatechange;
        this.onreadystatechange = function() {             
             if (this.readyState == 4) {
    
                 /* We are in response; do something, like logging or anything you want */
    
             }
    
             callback.apply(this, arguments);
        }
    
        _send.apply(this, arguments);
    }
    

    来源:JavaScript: Detect AJAX requests 还要检查这个 How can I detect 'any' ajax request being completed using jQuery?

    【讨论】:

    • 我不确定这是否是您的 100% 解决方案。
    • 谢谢。我不是要检测响应,而是要检测请求。此外,它必须适用于 ajax 以及新页面加载。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 2012-03-06
    • 2019-04-30
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多