在我的设置中,如果我的Web API请求出现任何问题,我会收到错误500.
例如,使用这个简单的代码.
public IQueryable<Article> Get(){
throw new Exception("error");
return db.Articles; //yeah i know.. unreachable, not the point
}
Run Code Online (Sandbox Code Playgroud)
我期望的(以及常规MVC控制器中发生的事情):

我得到了什么(在Web API中):
我的网页配置:
<customErrors mode="Off"/>
<compilation debug="true" targetFramework="4.5">
//under webserver
<httpErrors errorMode="detailed"/>
Run Code Online (Sandbox Code Playgroud)
应用程序池在集成模式下运行4.0.启用32位应用程序.
如何在浏览器中显示错误?或者至少在调试期间?
有没有办法在数组上获取get/set行为?我想象这样的事情:
var arr = ['one', 'two', 'three'];
var _arr = new Array();
for (var i = 0; i < arr.length; i++) {
arr[i].__defineGetter__('value',
function (index) {
//Do something
return _arr[index];
});
arr[i].__defineSetter__('value',
function (index, val) {
//Do something
_arr[index] = val;
});
}
Run Code Online (Sandbox Code Playgroud) 鲍尔博士说
注意如果您没有创作供其他人使用的软件包(例如,您正在构建Web应用程序),则应始终将已安装的软件包检查到源代码管理中.
有谁有一个很好的答案为什么?
如果我正在创建一个Web应用程序,我不希望我的repo与库X的版本更新混乱.
我只是想更新bower.json依赖项.我认为大多数项目都会有一个构建步骤或类似项目,例如grunt.构建步骤将确保在构建之前调用bower安装/更新,以便这些文件存在以进行连接/缩小等.或者甚至是纯文本复制到某个dist文件夹.
我错过了什么吗?
有没有办法在匹配正则表达式的文件中添加所有帅哥?
我知道我可以使用/来搜索给定的块,但是只找到第一个.我想添加所有匹配.
在我计划创建的许多项目中(小部件/本地客户端软件)我想存储一些用户首选项等.我可以做这个客户端,小部件有这个功能,或者我可以在某处在线存储它,让用户访问对任何计算机上的偏好,或重新安装后等.
问题是我不想将这些小部件等与我所拥有的任何域相关联,或者为另一个域和托管付钱,也为这样的服务实现和维护服务器端代码.
所以我的问题是:是否有任何在线服务为简单的键值对提供存储?优选地,当然有限使用.请记住,我想用javascript访问它.
为什么以下html文件在IE中显示为默认标题?其他浏览器将标题显示为mytitle.
<script>
window.mylib = window.mylib || {};
mylib.title = 'mytitle';
</script>
<script>
var mylib = mylib || {};
document.title = mylib.title || 'default';
</script>
Run Code Online (Sandbox Code Playgroud)
IE是否为每个脚本标记创建了单独的范围?
这只是一个错误或为什么行为不同?
(在IE8和最新的chrome/ff/opera中测试)
我在我的开发人员机器上运行了一个ASP.NET MVC项目,其中包含windows 7 ultimate和iis 7.5.
我做以下事情:
var requests = ["http://myserver.com/news/details/113834",
"http://myserver.com/tag/details?ids=113834&entityType=23",
"http://myserver.com/publish/details?ids=113834&entityType=23",
"http://myserver.com/generalproperty/details?ids=113834&entityType=23",
"http://myserver.com/category/details?ids=113834&entityType=23"];
var f = new Date().getTime();
$.each(requests, function(k,v) {
$.ajax({
url :v,
async : true,
type :'get',
success : function(data) {
console.log(new Date().getTime() -f );
}});
})
Run Code Online (Sandbox Code Playgroud)
然后我得到以下结果(约)12,521,1025,1550,2067 异步结果http://martinhansen.no/hostedimages/async.PNG
如果我将异步切换为假,我得到:14,32,49,58,68 同步结果http://martinhansen.no/hostedimages/sync.PNG
似乎某个地方的请求正在排队,一段时间后它只响应每500秒.我让我的控制器返回空白文本而不是数据库调用,所以不是数据库.
IIS 7.5对Windows 7有限制吗?我可以改变的设置?我怀疑每个用户的最大并发请求或类似的东西.然后它通过每500毫秒响应来"惩罚"你.这样人们就不会将它用作实际的服务器.
可能性有多大?有没有办法避免它?
似乎他们返回相同的结果,为什么使用一个而不是另一个?
var computed = ko.computed(function(){return 'foo';});
var observable = ko.observable();
var observableArray = ko.observableArray();
console.log('computed isObservable', ko.isObservable(computed));
console.log('observable isObservable', ko.isObservable(observable));
console.log('observableArray isObservable', ko.isObservable(observableArray));
console.log('computed isSubscribable', ko.isSubscribable(computed));
console.log('observable isSubscribable', ko.isSubscribable(observable));
console.log('observableArray isSubscribable', ko.isSubscribable(observableArray));
Run Code Online (Sandbox Code Playgroud)
全部记录为真. http://jsfiddle.net/1fvjuj9v/1/
我正在创建一个REST API,我一直在想要允许捆绑来自客户端的请求.通过捆绑我的意思是他们可以发送一个包含多个"真实"请求的请求,然后将它们一起发送给客户端.通常是javascript ajax请求.像这样的东西:
POST /bundlerequest
["/person/3243", "/person/3243/friends", "/comments/3243?pagesize=10&page=1", "/products", "/product/categories" ]
Run Code Online (Sandbox Code Playgroud)
(捆绑的请求只能是GET请求,至少现在如此)这是为了返回这样的东西
{
"success" : ["/person/3243", "/person/3243/friends", "/comments/3243?pagesize=10&page=1", "/products", "/product/categories" ],
"error" : [],
"completiontime" : 94,
other relevant metadata...
"responses" : [
{"key" : "/person/3243" , "data" : {"name" : "John", ...} },
{"key" : "/person/3243/friends" , "data" : [{"name": "Peter", "commonfriends" : 5, ...}] },
etc...
]
}
Run Code Online (Sandbox Code Playgroud)
这种捆绑的好处是它减少了请求的数量,这对移动设备尤其重要.
所以我的第一个问题是,我的方法是一个好的方法吗?有没有人有这样做的经验?
AFAIK解决这个问题的常用方法是编写服务器端代码以返回组合数据,我相信这些数据与客户端相关.(例如Twitter的用户流做到这一点,结合个人信息,最新的鸣叫,最新的个人消息等),但是这使得API非常刚愎自用,当客户需要改变服务器可能需要改变,以适应优化.
第二个问题是如何实现这个?
我的后台是ASP.NET MVC 3和IIS 7.我应该落实在应用程序中,有一个bundlerequest动作在内部调用请求中指定的其他动作?
它可以直接在IIS 7中实现吗?编写一个模块,透明地拦截对/ bundlerequest的请求,然后调用所有相应的子请求,使应用程序完全不知道发生的捆绑?这也允许我以与应用程序无关的方式实现它.
我需要在ember中深度嵌套一些路径,我有类似的东西.
this.resource('wizards', {
path: '/wizards'
}, function() {
this.resource('wizards.google', {
path: '/google'
}, function() {
this.resource('wizards.google.register', {
path: '/register'
}, function() {
this.route('step1');
this.route('step2');
this.route('step3');
this.route('summary');
});
});
});
Run Code Online (Sandbox Code Playgroud)
我期待的是这样的结构:
url /wizards/google/register/step1
route name wizards.google.register.step1
route Wizards.Google.Register.Step1Route
Controller Wizards.Google.Register.Step1Controller
template wizards/google/register/step1
Run Code Online (Sandbox Code Playgroud)
但我得到了这个:
url /wizards/google/register/step1 //as expected
route name wizards.google.register.step1 //as expected
route WizardsGoogle.Register.Step1Route
Controller WizardsGoogle.Register.Step1Controller
template wizards/google.register.step1
Run Code Online (Sandbox Code Playgroud)
我没有得到的是什么时候ember停止使用大写(WizardsGoogle)并开始使用命名空间(WizardsGoogle.Register).看似不一致让我感到困惑.我原以为他们中的任何一个.
我有一个变量obj
obj可以是任何东西,我想检测obj是否是一个函数.通常我会这样做
typeof obj === 'function'
Run Code Online (Sandbox Code Playgroud)
当obj是本机函数时,问题出现在IE <= 8中(至少知道它发生在window.open和window.alert中).在IE类型的obj中,当对象是window.open ==='object'时
有没有可靠的方法来检查window.open是否实际上是一个函数?
我看到jQuery也失败了
$.isFunction(window.open) => false //in IE
Run Code Online (Sandbox Code Playgroud)
这显然是在jquery 1.3或其他东西中删除的,不知道他们之前是如何测试的.
补充: 一种方式似乎是打电话
Function.prototype.apply.apply(window.open)
Run Code Online (Sandbox Code Playgroud)
如果这不会引发错误,那么window open是一个函数.如果你这样做
Function.prototype.apply.apply({})
Run Code Online (Sandbox Code Playgroud)
然后IE抛出一个错误"功能预期".但是打开一个窗口来检查一个变量是否是一个函数几乎不是一个好的解决方案.
是否可以为不同的git命令配置不同的编辑器?
说
或者是否有一些脚本可以充当中介并分析我执行的命令类型,然后写下我想要的编辑器?
这就是我的尝试.
echo "v1.2.3" | git tag
不行.这是不可能的吗?也试过了|git tag -
javascript ×4
git ×3
c# ×2
iis-7.5 ×2
api ×1
arrays ×1
bower ×1
ember.js ×1
getter ×1
iis-7 ×1
json ×1
knockout.js ×1
pipe ×1
setter ×1
storage ×1
text-editor ×1
unix ×1
web-services ×1