我的应用程序有一个资源/foo.通常,它由HTTP响应有效负载表示,如下所示:
{"a": "some text", "b": "some text", "c": "some text", "d": "some text"}
Run Code Online (Sandbox Code Playgroud)
客户端并不总是需要此对象的所有四个成员.什么是RESTful语义方式,客户端告诉服务器它在表示中需要什么?例如,如果它想要:
{"a": "some text", "b": "some text", "d": "some text"}
Run Code Online (Sandbox Code Playgroud)
应该怎么GET做?一些可能性(如果我误解了REST,我正在寻找纠正):
GET /foo?sections=a,b,d.
GET /foo/a+b+d我最喜欢的REST语义不包括这个问题,因为它简单.
/widgets代表一个可呈现的/widget/<id>资源列表是一致的,我从来没有遇到过这样的问题.GET /foo/a等,让客户端根据需要为每个组件发出请求/foo.
/foo有数百个组件且客户端需要100个组件,这可能会成为一场噩梦./foo,我必须使用Ajax,如果我只想要一个可以被抓取,由极简主义浏览器呈现的HTML页面等,这是有问题的./foo:{"a": {"url": "/foo/a", "content": "some text"}, ...}GET /foo,Content-Type: application/json并{"sections": ["a","b","d"]}在请求正文中.
对于某些资源,我的REST风格的服务器只接受PUT和POST使用JSON对象请求作为内容主体,因此需要Content-Type的application/json,而不是application/x-www-form-urlencoded或multipart/form-data或其他任何东西.
格式错误的JSON(或缺少JSON)返回a,400其中包含直接从JSON解析器引发的异常中获取的错误消息,以进行调试.
哪个HTTP错误代码意味着客户端发送了一个不可接受的请求Content-Type,即使服务器可以在技术上解析请求内容?
默认情况下,Tornado会在a Cache-Control: public提供的任何文件上放置标题StaticFileHandler.怎么能改成Cache-Control: no-cache?
是否有一个JavaScript库可以确定字符串是否与搜索查询匹配?它应该是高效的,并提供类似Google或LexisNexis的高级查询功能(诸如和/或运算符,同义词和括号之类的东西).任何类型的高级搜索功能都会很棒; 它不必与任何特定搜索引擎完全匹配.
动机:我有一个HTML页面,其中包含一个搜索框,后跟一堆段落(它们具有唯一ID,并且是从JavaScript数组生成的).当用户在框中键入搜索查询并按Enter键时,如果它们与查询不匹配,则应隐藏所有段落(即display设置为none).
我目前的策略(使用jQuery):
$('p').hide().$('p:contains("'+keyword+'")').show().这是一个非常有限的搜索功能,是区分大小写的,把所有的关键字为可选,并没有提供像运营商and,or或小括号.这也是效率低下的,因为即使已经匹配,它也会为每个关键字遍历每个字符串一次.
我的程序的状态包含三个值,a,b,和c,类型A,B和C.不同的功能需要访问不同的值.我想使用Statemonad 编写函数,以便每个函数只能访问它需要访问的状态段.
我有以下四种类型的功能:
f :: State (A, B, C) x
g :: y -> State (A, B) x
h :: y -> State (B, C) x
i :: y -> State (A, C) x
Run Code Online (Sandbox Code Playgroud)
以下是我打电话的g内容f:
f = do
-- some stuff
-- y is bound to an expression somewhere in here
-- more stuff
x <- g' y
-- even more stuff …Run Code Online (Sandbox Code Playgroud) W3C是否指定XMLHttpRequest可以设置哪些HTTP头?如果是这样,他们是否出于安全原因发布了证明这些要求的文件?
是否由浏览器自行决定限制HTTP标头?如果是这样,是否有在线文档或文档集合列出了不同XHR实现的怪癖,或者是否有必要在每个实现的文档中找到该信息?
SQLite version 3.7.9 2011-11-01 00:52:41
sqlite> PRAGMA foreign_keys = 1;
sqlite> CREATE TABLE foo(name);
sqlite> CREATE TABLE bar(foo_rowid REFERENCES foo(rowid));
sqlite> INSERT INTO foo VALUES('baz');
sqlite> SELECT rowid, name FROM foo;
1|baz
sqlite> INSERT INTO bar (foo_rowid) VALUES (1);
Error: foreign key mismatch
Run Code Online (Sandbox Code Playgroud)
为什么会出现此错误?这是一个DML错误,但我不知道出了什么问题,因为:
foo 存在.foo.rowid 存在.foo.rowid是foo唯一性的主要关键因素.bar.foo_rowid是一列,它匹配一列的事实foo.rowid.>>> from weakref import WeakValueDictionary
>>> class Foo(object):
... pass
>>> foo = Foo()
>>> db = WeakValueDictionary()
>>> db['foo-id'] = foo
>>> del foo
>>> dict(db)
{'foo-id': <__main__.Foo object at 0x4dd946c>}
Run Code Online (Sandbox Code Playgroud)
为什么它显示这个而不是空字典?请注意,此代码生成我期望的结果:
>>> db2 = WeakValueDictionary()
>>> db2['disposable-id'] = Foo()
>>> dict(db2)
{}
Run Code Online (Sandbox Code Playgroud)
执行脚本(而不是交互式解释器)时,它的行为也符合预期:
from weakref import WeakValueDictionary
class Foo(object):
pass
foo = Foo()
db = WeakValueDictionary()
db['foo-id'] = foo
del foo
print str(dict(foo))
# prints {}
Run Code Online (Sandbox Code Playgroud) #define N 10;
int main()
{
int x;
for (int i=0; i<N; i++)
x = i;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
用g ++编译的结果:
test-define.cpp: In function ‘int main()’:
test-define.cpp:7:22: error: expected primary-expression before ‘;’ token
test-define.cpp:7:22: error: expected ‘)’ before ‘;’ token
test-define.cpp:7:24: error: name lookup of ‘i’ changed for ISO ‘for’ scoping [-fpermissive]
test-define.cpp:7:24: note: (if you use ‘-fpermissive’ G++ will accept your code)
test-define.cpp:7:27: error: expected ‘;’ before ‘)’ token
Run Code Online (Sandbox Code Playgroud)
但是当我将第7行更改为时,它编译得很好for (int i=0; i<10; i++).
为什么这样,我如何使用该#define指令来实现我想要的?
Firefox 比 Chrome 处理得更好,但都不是我想要的方式。它们都将所有相邻的 HTML 标签混在一起并将它们视为一个(我不想要)。
Firefox:当光标位于一个标签(或一组相邻标签)的左侧并且您向右按时,光标会跳过标签前面的第一个字符。然后,如果您按左键,它会在字符和标签之间移动。(左右按相同。)
Chrome:标签和它后面的第一个字符混在一起。无法将光标置于标记和后续字符之间。
期望:标签被视为相对于光标的单个字符。如果光标位于标签的左侧,而您按向右,则光标应移到标签的右侧,反之亦然,按向左。
如何在浏览器上强制执行所需的行为?
这不适用于 WYSIWIG 编辑器。为了达到特定目的,标签在生产中以视觉方式表示,就像它们在 jsfiddle 中一样。用户希望任意控制包含光标的元素。
b:before, b:after,
i:before, i:after,
p:before, p:after {
color: blue;
}
b:before {
content: '<b>';
}
b:after {
content: '</b>';
}
p:before {
content: '<p>';
}
p:after {
content: '</p>';
}
i:before {
content: '<i>';
}
i:after {
content: '</i>';
}?
----------
<p contenteditable='true'>regular regular<b>bold</b>regular -
try moving the cursor to either side of either blue tag.</p>
<p contenteditable='true'>try it in this: regular<b><i>bolditalic</i></b></p>
Run Code Online (Sandbox Code Playgroud) http ×3
javascript ×3
python ×2
rest ×2
api ×1
c++ ×1
caching ×1
database ×1
foreign-keys ×1
haskell ×1
html ×1
http-headers ×1
http-request ×1
mapping ×1
mime-types ×1
monads ×1
python-2.7 ×1
search ×1
sql ×1
sqlite ×1
static-files ×1
tornado ×1
url ×1