我不知道这是否重要,但我在OSX上.
我知道您可以通过键入以下内容从命令行启动浏览器:
open http://www.stackoverflow.com
Run Code Online (Sandbox Code Playgroud)
但有没有办法从nodejs命令行脚本中打开浏览器?
我正在阅读Douglas Crockford的JavaScript:The Good Parts,我对某些事情感到有些困惑.在第4章的"扩充类型"下,他创建了一个添加方法的快捷方式.
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
Run Code Online (Sandbox Code Playgroud)
他说:
通过使用'method'方法扩充Function.prototype,我们不再需要键入prototype属性的名称.现在可以隐藏一点丑陋.
然后他继续使用它来为数字原型添加一个"整数"方法.
Number.method('integer', function () {
return Math[this < 0 ? 'ceil' : 'floor'](this);
});
document.writeln((-10 / 3).integer()); // -3
Run Code Online (Sandbox Code Playgroud)
我在这里有点困惑...因为我们在Function原型中添加了'method'方法,而不是Number原型.据我所知,Number对象不会从Function原型继承(虽然我可能在那里错了).我看到这有效,但我不明白为什么Number对象能够使用这个'方法'方法来添加...方法.
我正在阅读Douglas Crockford的JavaScript:The Good Parts,我正处于定义淡入淡出功能的地步.部分代码归结为:
var level = 1;
var hex = level.toString(16);
Run Code Online (Sandbox Code Playgroud)
所以我在浏览器的控制台中运行它以查看我得到的内容....
var level = 1;
level.toString(16);
Run Code Online (Sandbox Code Playgroud)
嘿,它返回" 1"...... Fabuloso!Wunderbar酒吧!
然后,为了厚颜无耻,我试着看看我得到了什么......
1.toString(16);
Run Code Online (Sandbox Code Playgroud)
我明白了
SyntaxError:意外的标记ILLEGAL
什么是什么?如果level变量等于1,并且在该级别上运行此方法工作正常,那么为什么不在实际的数字1上运行此方法呢?我尝试了一种与该toPrecision()方法类似的实验,并且在两种情况下均可正常工作.这是什么问题?这是JavaScript实现中的另一个固有缺陷,还是我错过了什么?我正在Google Chrome中测试.
相关:Stack Overflow问题为什么数字文字不能访问Number方法?.
当我在工作时,我使用我的macbook,但在家里我更喜欢使用我的imac.当我们使用subversion时,我所要做的就是将我的工作目录放在我的dropbox文件夹中,它会同步我的两台计算机而没有问题.我可以在工作中停止工作(无需提交或推送),然后拿起我在家里想象的地方,完成我正在处理的工作,并从家里完成我的更改.从任何一台计算机上,它都被视为我在同一台计算机上完成所有工作.
所以我希望dropbox能够容纳我的本地工作目录并在我的计算机上同步.我不想使用我的Dropbox文件夹作为我的原始主人(这是我在谷歌搜索时发现的大部分内容).我很高兴使用github.我只是希望能够在没有打嗝的情况下从计算机切换到计算机.
我们切换到git,由于某种原因它不会以同样的方式工作.我到处都是冲突的疯狂错误.这就像git信息实际上没有放在dropbox文件夹中......或者dropbox没有看到并同步更改,因为git如何操作文件上的时间戳(猜测这里).
任何人都知道为什么这与git的工作方式不同以及我能做些什么才能再次获得相同的行为?
我无法将我的域名指向我使用谷歌应用引擎托管的网站.这是背景...注意分离"谷歌应用程序"(域名托管,电子邮件等)和"谷歌应用程序引擎"(网站框架)的概念.
我有一个使用Google Apps for Your Domain的域名,我们称之为company.com.所以我的谷歌应用程序帐户登录名是bob@company.com.我有一个不同的域名别名,我的谷歌应用程序帐户,我们称之为mycompany.com.它已使用cname方法成功别名并在我的主要Google Apps帐户中注册,并更新了mx记录.我们有很多域名,我只想使用一个"谷歌应用"帐户来维护它们.
现在我有一个我使用谷歌应用引擎建立的网站,网址实际上是mycompany.appspot.com.我想让mycompany.com指向我目前位于mycompany.appspot.com的网站.
在应用程序设置下的谷歌应用程序引擎仪表板中有一个位置,您可以在其中添加域.所以我点击那里进入mycompany.com,我收到一条错误消息,说该域名没有使用谷歌应用程序.
如果我回到我提交的页面,会有一条说明我需要使用谷歌应用注册域名.所以我点击链接进行操作并进入mycompany.com,我收到一条错误消息,说明该域名已经注册并且正在进行所有权验证.但是这个过程已经完成了.
那么......我该怎么办?谷歌应用引擎不支持只有主要谷歌应用帐户别名的域吗?mycompany.com是否需要拥有自己的主要谷歌应用帐户?
我还在学习bigtable/nosql中关于数据建模的课程,并希望得到一些反馈.如果我经常需要与父母一起处理这些孩子,那么我的数据建模中是否应该避免父母与子女的关系,这是否公平?
举个例子,假设我正在建立一个博客,该博客将由许多作者提供,彼此有帖子,每个帖子都有标签.所以我可能会设置这样的东西:
class Author(db.Model):
owner = db.UserProperty()
class Post(db.Model):
owner = db.ReferenceProperty(Author,
collection_name='posts')
tags = db.StringListProperty()
Run Code Online (Sandbox Code Playgroud)
据我了解,这将创建一个基于作者父级的实体组.如果我主要需要通过标签查询Posts,这会导致效率低下吗?
我理解对列表属性进行查询可能效率低下.假设每个帖子平均有大约3个标签,但可以一直到7个.我希望我的可能标签集合可以达到数百个.将模型改为这样的东西有什么好处吗?
class Author(db.Model):
owner = db.UserProperty()
class Post(db.Model):
owner = db.ReferenceProperty(Author,
collection_name='posts')
tags = db.ListProperty(db.Key)
class Tag(db.Model):
name = db.StringProperty()
Run Code Online (Sandbox Code Playgroud)
或者我会做这样的事情会更好吗?
class Author(db.Model):
owner = db.UserProperty()
class Post(db.Model):
owner = db.ReferenceProperty(Author,
collection_name='posts')
class Tag(db.Model):
name = db.StringProperty()
class PostTag(db.Model):
post = db.ReferenceProperty(Post,
collection_name='posts')
tag = db.ReferenceProperty(Tag,
collection_name='tags')
Run Code Online (Sandbox Code Playgroud)
最后一个问题......如果我最常见的用例是通过多个标签查询帖子怎么办?例如,"在{'apples','oranges','cucumbers','bicycles'}中查找带有标签的所有帖子" 这些方法中的一种更适合查找具有任何标签集合的帖子的查询吗?
谢谢,我知道那是满口的.:-)
我正在使用带有webapp框架的python google app引擎,用jinja2模板替换django模板.
我知道你可以通过调用它来获取一个对象的key_name,如下所示:
goody = object.key().name()
Run Code Online (Sandbox Code Playgroud)
但是可以从模板逻辑中访问key_name吗?像这样的东西?
{% for object in objectList %}
{{object|key_name}}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
显然这不起作用,但是我可以使用一些过滤器或隐藏属性来获取应用程序引擎key_name,从模板内部存储一个对象,而不需要在处理程序方法中进行额外的操作吗?
我决定安装jinja2以与我的webapp应用程序一起使用,以支持autoescape功能.所以我将jinja2安装到python 2.5中并在我的项目中创建了一个指向该目录的符号链接.它大部分工作正常.
除了,当我实际尝试使用{%autoescape true%}标记时,我收到消息:
File "/Users/me/project/templates/_base.html", line 1, in template
{% autoescape true %}
TemplateSyntaxError: Encountered unknown tag 'autoescape'.
Run Code Online (Sandbox Code Playgroud)
我在文档中使用了标签:
{% autoescape true %} stuff {{var1}} stuff {{var2}}{% endautoescape %}
Run Code Online (Sandbox Code Playgroud)
在我的处理程序文件中,我正在导入相关的东西:
from jinja2 import Environment, FileSystemLoader, TemplateNotFound
from jinja2.ext import autoescape
Run Code Online (Sandbox Code Playgroud)
导入工作正常,因为它没有抛出错误.我做错了什么,或者jinja2本身有问题,比如可能在ext.py中?
更新:我在下面尝试了sharth的建议并获得了相同的结果.这是我使用他的建议更新的处理程序.
class MainHandler(BaseHandler):
def get(self):
self.context['testEscape']='<script type="javascript">alert("hi");</script>'
env = Environment(loader=FileSystemLoader([os.path.join(os.path.dirname(__file__), 'templates')]), autoescape=False)
template = env.get_template('index.html')
content = template.render(self.context)
self.response.out.write(content)
Run Code Online (Sandbox Code Playgroud)
同样,只要我不使用autoescape标签,它就可以正常工作.
我无法让oauth在GAE Python中使用linkedin,我怀疑它是传出请求的格式.如何记录或以某种方式查看我的服务器向oauth提供者发出的传出请求?
我正在尝试从谷歌代码库(就像在这里的stackoverflow上使用的那个)实现wmd-editor ,我遇到了一个问题.
当您输入textarea时,它会在浏览器中启动两个绘制操作.一个用于重绘textarea本身,另一个用于重新绘制预览面板.您可以通过打开chrome检查器并在问题字段中键入一些文本时使用时间轴选项卡来监视stackoverflow上发生的情况.
但是在我的页面上,浏览器在必须执行这些绘制操作时重新绘制整个视口.这需要更长的时间......在我的页面上每次绘制操作大约需要100ms,而在stackoverflow上大约需要1ms.
在我的测试中,这似乎与css相关......我可以通过剥离所有样式在wmd-new示例页面中重新创建此行为.
我的页面还没有公开,但希望我可以用通用的方式询问...是什么会导致浏览器在dom更改中重新绘制整个视口而不是重新绘制dom的那一部分?
我在这里谈论的是什么.

python ×4
javascript ×3
jinja2 ×2
alias ×1
bigtable ×1
command-line ×1
css ×1
dns ×1
dom ×1
dropbox ×1
git ×1
google-apps ×1
linkedin ×1
node.js ×1
nosql ×1
oauth ×1
shell ×1
svn ×1
verification ×1
wmd ×1
wmd-editor ×1