我已经安装了Stack Exchange MiniProfiler,而View Source显示它正在呈现预期的HTML。但是它没有显示角落里的小轮廓细节框 - 可能是错的?
<script src="/v2/Scripts/jquery-1.6.1.min.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="/v2/mini-profiler-includes.css?v=1.7.0.0">
<script type="text/javascript" src="/v2/mini-profiler-yepnope.1.0.1.js"></script>
<script type="text/javascript">
yepnope([
{ test: window.jQuery, nope: '/v2/mini-profiler-jquery.1.6.1.js' },
{ test: window.jQuery && window.jQuery.tmpl, nope: '/v2/mini-profiler-jquery.tmpl.beta1.js' },
{ load: '/v2/mini-profiler-includes.js?v=1.7.0.0',
complete: function() {
jQuery(function() {
MiniProfiler.init({
ids: ["025bbb91-9605-44b7-b33d-d8b196326dbc","2c74ce3e-8de6-4f8d-920a-e8708b22231b"],
path: '/v2/',
version: '1.7.0.0',
renderPosition: 'left',
showTrivial: false,
showChildrenTime: false,
maxTracesToShow: 15
});
});
}
}]);
</script>
在我的Global.asax.cs中:
protected void Application_BeginRequest()
{
if (Request.IsLocal)
{
MiniProfiler.Start();
}
}
protected void Application_EndRequest()
{
MiniProfiler.Stop();
}
编辑:感谢Sam的输入,我已将问题跟踪到我的.ajaxSetup()方法。当它被注释掉时,配置文件框会再次显示。但我不明白为什么这是一个问题:
$.ajaxSetup({
data: "{}",
dataFilter: function (data) {
var msg;
if (data == "") {
msg = data;
}
else if (typeof (JSON) !== 'undefined' && typeof (JSON.parse) === 'function') {
msg = JSON.parse(data);
}
else {
msg = eval('(' + data + ')');
}
if (msg.hasOwnProperty('d')) {
return msg.d;
}
else {
return msg;
}
}
});
答案 0 :(得分:2)
这种情况很有意义,也许你的过滤器会破坏结果。
添加一个绕过过滤的条件,如果你看到它是一个MiniProfiler JSON结果应该修复它。
答案 1 :(得分:2)
我的猜测是全局dataFilter正在干扰MiniProfiler的$.get()
jQuery模板模板文件。在HTML片段上调用JSON.parse()
肯定会引发错误。
由于您使用的是最新版本的jQuery,因此您无需手动添加优化的JSON解析。该功能包含在1.4中的jQuery核心中。
所以,最简单的说,尝试将全局dataFilter更改为:
$.ajaxSetup({
data: "{}",
dataFilter: function (msg) {
if (msg.hasOwnProperty('d')) {
return msg.d;
}
else {
return msg;
}
}
});
如果这不能解决问题,您可能需要查看jQuery 1.5的转换器而不是全局dataFilter,它允许您将类似dataFilter的操作应用于某些Content-Type的响应。实际上在这里重写了jQuery 1.5 AJAX的人的一些很好的例子:http://encosia.com/jquery-1-5s-ajax-rewrite-and-asp-net-services-all-is-well/#comments