微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

extjs – ServiceStack MiniProfiler Ajax请求记录

所以,在我的Index.cshtml页面中,当我最初加载页面时,我有

@inherits ViewPage
<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="ext-all-debug.js"></script>
        <script type="text/javascript" src="app.js"></script>
        <script type="text/javascript" src="app.ext.js"></script>
        <script type="text/javascript" src="dump.js"></script>
        @ServiceStack.MiniProfiler.Profiler.RenderIncludes().AsRaw() 
    </head>
    <body> 
    </body>
</html>

好的,我可以看到它的分析索引,一堆ExtJS,以及服务器端的第一个ajax调用我的ServiceStack(在/ api / session中).

现在,在我的ExtJS表单中,当我点击它时,我有一个Customers选项卡向/ api / customers发送ajax请求,当我点击它调用/ api / orders时我有一个标签.

但是,当我开始点击,比如客户选项卡时,Miniprofiler不再将任何后续的ajax请求添加到列表中?我以为Miniprofiler可以记录ajax请求没什么特别需要做的吗?为什么不为我记录后续的ajax请求?我错过了什么?

解决方法

Nuget提供的当前版本不支持拦截ExtJS ajax调用.
似乎该功能一个 pull request,但它尚不可用.

以下是我必须做的事情:

Ext.require('Ext.Ajax');
Ext.onReady(function () {
    Ext.Ajax.on('requestcomplete',function (e,xhr,settings) {
        if (typeof (MiniProfiler) != 'undefined') {
            var stringIds = xhr.getResponseHeader('X-MiniProfiler-Ids');
            if (stringIds) {
                var ids = typeof JSON != 'undefined' ? JSON.parse(stringIds) : eval(stringIds);
                MiniProfiler.fetchResultsExposed(ids);
            }
        }
    });
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐