我很好奇是否有任何方法可以伪造出Array.isArray()
用户定义的对象.
从JavaScript模式书:
Array.isArray([]); // true
// trying to fool the check
// with an array-like object
Array.isArray({
length: 1,
"0": 1,
slice: function () {}
}); // false
Run Code Online (Sandbox Code Playgroud)
那个对象显然失败了,但还有其他办法吗?这纯粹是好奇心,并不是因为我认为你可以用.isArray()
普通的客户端代码搞定(尽管知道你是否可以,这显然很棒!).
我正在尝试使用Socket.IO的授权功能来获取会话数据.问题是,即使我注销并销毁我的会话,Socket.IO仍然有旧的会话信息,这显然不太理想.我在下面的代码中做错了什么想法?
io.set('authorization', function (data, accept) {
if(data.headers.cookie) {
data.cookie = parseCookie(data.headers.cookie);
data.sessionID = data.cookie['express.sid'];
app.set('mongo-store').get(data.sessionID, function (err, session) {
console.log(err, session);
if (err || !session) {
// if we cannot grab a session, turn down the connection
accept('Error', false);
} else {
// save the session data and accept the connection
data.session = session;
accept(null, true);
}
});
} else {
return accept('No cookie transmitted.', false);
}
accept(null, true);
});
Run Code Online (Sandbox Code Playgroud)
这是连接代码:
io.sockets.on('connection', function(socket) {
var hs = socket.handshake;
console.log('A socket …
Run Code Online (Sandbox Code Playgroud) 我最近已经开始尝试尽可能地考虑REST,并且我发现自己被非显而易见的路线所困扰.
在这种特殊情况下,我很好奇RESTful方式来检查用户的用户名和电子邮件可用性,或其他任何具有唯一性的方法.
我的直觉告诉我,我会想在执行GET
上/users/email
或/users/username/
每一个需要PARAM,或者说沿着线GET /users/search/
与可选PARAMS email
和username
.如果你得到了200
,那么username
或者email
不可用; 如果你得到了404
,那就可以了.
我更喜欢第一种选择,因为它更明确,但是我并不喜欢罗伊菲尔丁的论文,因为我很清楚该怎么做.
什么是最健全的方法?
当我点击注册或使用Gerrit Code Review登录时,我收到此错误: Provider is not supported, or was incorrectly entered.
当我手动将URL输入OpenID字段时,它会转到Google页面,说明: The page you requested is invalid.
有什么线索在这里发生了什么?
编辑:经过进一步调查,我意识到,如果我将OpenID字段中提供的URL更改为http
而不是https
,它会将我重定向到Google并请求我批准.然而,在重定向回Gerrit时,似乎没有发生任何事情.我尝试多次注册/签名,但没有效果.
我还在MySQL
数据库中查看是否存储了任何数据,并且似乎没有.
编辑3:回答.我已经做得很好,可以更仔细地阅读以前的错误报告.我的系统管理员也非常缺乏.尽管如此,这是作为另一个bug的副本解决的,并且是Debian问题; 见下文.
我正在设计一个使用浏览器提供的标准复选框的任务列表.但恕我直言,复选框区域太小而且难以点击,特别是如果您正在进行半功率用户风格点击多个复选框(对于不了解键盘快捷键但想要进行大量存档,删除等的用户) . 一次全部).
有没有什么方法可以使复选框周围的区域可点击,比如说它附近有5px的额外填充?我正在使用jQuery作为我的主要客户端代码,但我不反对使用普通的旧JS,如果它更有意义.
哦,我并不是真的在寻找一个插件.这里有一些轻量级的东西.
提前干杯!
2.0-wip
GitHub上的Twitter Bootstrap 分支包括一个新的响应式布局系统.这对于需要这种响应水平的应用程序来说非常棒,但我正在开发一个只需要完全固定布局的纯网络应用程序.
有没有简单的方法来覆盖Bootstrap的响应式布局?
您可以通过克隆他们的回购,分支到您的浏览器2.0-wip
并docs/scaffolding.html
在浏览器中打开来查看它.
提前致谢!
我的UsersController#create
动作中发生了顺序扫描.
SELECT ? AS one FROM "users" WHERE (LOWER("users"."username") = LOWER(?) AND "users"."id" != ?) LIMIT ?
Explain plan
1 Query planLimit (cost=0.00..3.35 rows=1 width=0)
2 Query plan-> Seq Scan on users (cost=0.00..3.35 rows=1 width=0)
3 Query planFilter: ?
Run Code Online (Sandbox Code Playgroud)
我相当积极,这来自以下模型验证:
validates :username, uniqueness: { case_sensitive: false }
我应该创建一个针对此快递的索引吗?如果是这样,在Rails 4中执行此操作的正确方法是什么?
postgresql indexing ruby-on-rails ruby-on-rails-4 rails-activerecord
我试图通过这种方式将顶级路由从我的Rails API工作到Ember.js客户端(例如,类似于GitHub的工作原理):
点击www.example.com/username
会给你一个用户的页面.这可能会击中api.example.com/users/:username
端点或其他端点.
点击www.example.com/organization_name
会给你一个组织的页面.这可能会击中api.example.com/organizations/:organization_name
端点或其他端点.
获取随机URL时,客户端显然不知道它正在处理什么类型的模型.它只是把它当作www.example.com/random_string
,其中random_string
可以是一个username
或一个organization_name
.
我不太清楚如何处理这种情况.目前还不清楚客户端或服务器的责任在哪里.我可以想象也许某种多态性在这里工作,但无法连接点.
编辑
看起来这似乎可以在Rails端通过一个catch-all路由/:slug
然后使用slug来首先查询a User
,然后查询一个Organization
.
因此,更大的问题是,通过使用现有的控制器操作进行渲染,还是让HTTP通过重定向来处理这些请求是否有意义.会ember-data
很好地处理HTTP重定向吗?在另一种情况下,它是否能够在此端点上正确切换类型?
编辑3:我已经通过忽略下面给出的建议并在窗口上聆听来实现这一点,但只有当一个input
,一个text
字段或textarea
没有集中注意力时.不过,我不确定这是否是处理此问题的最佳方式.
编辑2:我已经尝试keydown
通过应用focus
和blur
处理程序来解决问题input
.然后我只会在什么时候听事件var focus_on_input == true
.但似乎并非一切都很顺利.这可以防止某些行为,但会导致其他更奇怪的行为.例如,当我tab走出输入字段,按下J并K会跳转到顶部或底部的名单.如果我click
在其他地方转移焦点,这个问题是固定的.有什么想法吗?
编辑:感谢回答者帮助,我在监听时限制了选择器,keydown
这样我仍然可以在其他地方输入字符,但我遇到了一个新问题.当我按J或K箭头导航跳转到任务列表的顶部或底部时.当我按C或#它会通知我没有选择任务.X按功能运行,不选择任务.
在JSFiddle上托管此代码,因为这里没有可能的方式对其进行全面评论.我已经发布了用于界面本身的所有JS,CSS和HTML.
我正在设计一个基于Gmail的UI,用于在前端使用jQuery进行任务管理(以及后端的PHP,尽管它与此基本无关).
我仍然是jQuery开发的新手,所以我意识到我做了很多错事.到现在为止,我根本不知道我到底做错了什么,也不知道如何解决它.我希望一些更有学识的人可以帮助我(和其他人,希望)找出如何为更大的应用程序重构jQuery代码.
首先,我想知道如何做得更好的一些事情:
仅在任务界面处于活动状态时调用此代码.
改善对keydown
事件的倾听.目前我听J,K,X,Shift+3,和C.我也将听取E任务编辑,但尚未实施编辑.听众的问题与我的第一个问题有关,即他们总是在关注 …
出于某种原因,IE9使Arial字体比其他浏览器更大胆,例如:IE7,IE8,Chrome和Firefox.我在CSS中寻找原因却找不到任何错误.
发生的另一件事是我的大多数网站都有1或2像素的字间距,但IE9显示它太宽,所以我用正常的字间距为它做了条件css.
您可以在附加的屏幕截图中看到差异,也可以在此临时链接中找到它:http:
//pat.co.il/shirg/matanuziel.com/
任何想法将不胜感激.谢谢