这一定非常简单,但我在文档中找不到它.
在玩!1.2我可以使用以下URL登录数据库控制台:
它似乎不再适用于Play!2.0(我收到'未找到操作'消息).你知道Play中数据库控制台的URL是什么吗?2.0?
谢谢!
在Javascript中是否可以获得最后一次计算表达式的结果?例如:
var a = 3;
var b = 5;
a * b;
console.log(lastEvaluatedExpression); // should print 15
Run Code Online (Sandbox Code Playgroud)
所以它会像eval()那样返回最后一个计算的表达式,但我不能使用eval().
我知道有类似的问题,但是我希望看看这些答案在新Javascript引擎中的优化是否仍然有效.
在我看来,在构造函数中定义函数的最大好处是你可以很容易地避免知道'this'关键字的值:
var Person = function() {
var self = this;
self.firstName = null;
self.lastName = null;
self.fullName = function() {
return self.firstName + self.lastName;
};
};
Run Code Online (Sandbox Code Playgroud)
Knockout Managing'this'推荐这种方法.这是一个很大的优势,特别是当许多开发人员修改代码时,因为它很容易理解和使用.
另一种方法是使用对象原型:
var Person = function() {
this.firstName = null;
this.lastName = null;
};
Person.prototype.fullName = function() {
return this.firstName + this.lastName;
};
Run Code Online (Sandbox Code Playgroud)
在这种情况下,存在性能优势,因为函数对象将被创建一次.然而,我遇到的主要问题是处理'this'关键字可能会很复杂.上面的例子非常简单,但如果你有事件处理程序,forEach调用,jQuery each()调用,从不同的上下文调用的方法等,很容易使用它.
当然,如果您了解"这个"是如何工作的并且知道如何调用方法,那么您应该没有太多问题.但是,根据我的经验,这需要时间并且容易出错,尤其是当代码由许多开发人员制作时.
我知道新的JS引擎,比如V8,正在通过创建隐藏类在构造函数中声明函数的情况下应用优化:V8引擎如何工作?.
所以我的问题是,鉴于新JS引擎完成的这些优化以及必须处理'this'关键字的复杂性,使用基于原型的方法仍然有意义吗?通过使用将所有内容放在构造函数中的方法,我会放松什么?
更新1:
我刚刚在Chrome上进行了微基准测试(第42版).我创建1M对象,其中的函数在构造函数中,函数在原型中.这是一个非常简单的对象,有两个变量和三个函数,结果如下:
Functions inside constructor: 1.91 seconds
Functions in prototype: 1.10 seconds
Run Code Online (Sandbox Code Playgroud)
听起来即使在V8中进行了优化,它仍然快73%.然而,这是一个微观基准.不确定这在现实世界的应用程序中是否会有很大的不同.
更新2:
我还看了一下内存消耗情况,也有很大差异.对于构造函数内部的函数:
Shallow size: 64,000,120
Retained size: 336,001,128 …Run Code Online (Sandbox Code Playgroud) 我们正在使用内存数据网格(IMDG),并且有一个迁移工具。为了验证是否成功迁移了所有对象,我们从其序列化版本计算对象的chucksum。
我们看到了HashMap的一些问题,我们在其中进行了序列化,但是当我们对其进行反序列化时,校验和发生了变化。这是一个简单的测试用例:
@Test
public void testMapSerialization() throws IOException, ClassNotFoundException {
TestClass tc1 = new TestClass();
tc1.init();
String checksum1 = SpaceObjectUtils.calculateChecksum(tc1);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = null;
byte[] objBytes = null;
out = new ObjectOutputStream(bos);
out.writeObject(tc1);
objBytes = bos.toByteArray();
out.close();
ByteArrayInputStream bis = new ByteArrayInputStream(objBytes);
ObjectInputStream in = new ObjectInputStream(bis);
TestClass tc2 = (TestClass) in.readObject();
String checksum2 = SpaceObjectUtils.calculateChecksum(tc2);
assertEquals(checksum1, checksum2);
}
Run Code Online (Sandbox Code Playgroud)
TestClass看起来像这样:
class TestClass implements Serializable {
private static final long serialVersionUID = 5528034467300853270L;
private Map<String, Object> …Run Code Online (Sandbox Code Playgroud) 我在现有数据库上使用Mongo的Spring Data。先前的应用程序使用纯字符串作为id而不是ObjectId。
我的问题是Spring Data坚持将字符串转换为ObjectId,这会使所有按id进行的查询均失败。
例如,当我这样做时repository.findOne(''),执行的查询{ "_id" : { "$oid" : "50cf9f34458cf91108ceb2b4"}}应该是{ "_id" : "50cf9f34458cf91108ceb2b4" }
有没有一种方法可以避免Spring Data将字符串ID转换为ObjectId?
谢谢!
地亚哥
我想知道是否可以动态更改pod的标签,以便服务根据新标签将请求路由到这些pod.
例如,我有两个服务A和B.然后我有10个pod,其中5个标签类型= A(匹配服务A),另外5个标签类型= B(匹配服务B).在某些时候,我想更改pod上的标签,以实现2的配置,标签类型= A和8,标签类型= B.
我想知道我是否可以更改标签和服务将相应更新,而无需停止和启动具有不同标签的新pod.
根据Kubernetes API文档,可以创建/列出/删除pod,复制控制器和服务:
http://kubernetes.io/third_party/swagger-ui/#!/v1beta1
但是,在Google容器引擎文档中,他们似乎没有公开此API.您可以通过REST API管理的唯一资源是群集.必须使用gcloud管理Pod,复制控制器和服务.
使用Google Container Engine时是否可以访问Kubernetes API?
更新:
其他人报告说这个样本适合他们.听起来我做错了什么但我没有代码,所以我无法检查问题是什么.
原始问题:
我有以下自定义元素与以下视图模型和视图:
import {bindable} from 'aurelia-framework';
export class Test1 {
@bindable name = null;
}
<template>
<div>Name: ${name}</div>
</template>
Run Code Online (Sandbox Code Playgroud)
然后我使用上面的自定义元素(这是骨架项目中的欢迎页面)有一个这个视图和视图模型:
export class Welcome {
constructor() {
this.name = 'Test';
}
}
<template>
<require from="./components/test1"></require>
<test1 name.bind="name"></test1>
</template>
Run Code Online (Sandbox Code Playgroud)
我的期望是看"名字:测试",但我只得到"姓名:".如果我使用字符串并删除".bind",那么它的工作原理如下:
<test1 name="Test"></test1>
Run Code Online (Sandbox Code Playgroud)
但是,每当我更新"App"视图模型中的"name"字段时,我希望它自动更新.
我不确定我做错了什么.我没有在控制台中看到任何错误.
我将此示例基于Aurelia的骨架示例项目.aurelia-framework的版本是0.11.0.
我们需要将WordPress用于流量较高的网站。我们预计每月的初始浏览量为50万,每月增加到约800万。用法主要是在工作时间内使用,每月工作8个小时,大约每月20天。
我们正在考虑将Google App Engine与Google Cloud SQL结合使用。我们想知道它对于这种负载的扩展能力如何。理论上说Google App Engine应该自动扩展,但是不确定扩展时Google Cloud SQL有多好。这将是一个主要读取的数据库,一些写入。
所以问题是:
我一直在努力尝试从Twitter Bootstrap下载较少的文件.根据jspm文档,他们将下载发行版的zip文件而不是存储库中的源代码.在Twitter Bootstrap中,zip文件没有更少的文件,所以我理解为什么当我做类似的事情时,我没有得到它们:
jspm install github:twbs/bootstrap@3.3.4
Run Code Online (Sandbox Code Playgroud)
但是,为了避免这种限制,我将Twitter Bootstrap分叉以避免这些自定义发布文件.当我进入我的fork中的发布部分并下载文件时,它看起来不错,但是当我尝试安装它时,我得到了和以前一样的文件.
我做了一个干净的缓存,创建了一个不同的分支,在基于v3.3.4等的新分支上进行了更改等.我总是得到相同的v3.3.4文件集而没有更少的文件.
有谁知道jspm如何确定下载什么以及为什么它可能在twbs/bootstrap中下载发布文件而不是我的fork中的那个?
javascript ×2
kubernetes ×2
aurelia ×1
autoscaling ×1
hashmap ×1
java ×1
jspm ×1
mongodb ×1
wordpress ×1