将Jetty webserver嵌入到Java应用程序中应该很容易; 例子比比皆是.
没有示例表明必须导入Jetty库.
我已经下载了Jetty分发包...它有36个jar文件.
在哪里可以找到将Jetty嵌入应用程序必须完成的分步示例?
我一直在阅读很多CSS性能文章,比如;
我明白为什么像这样的选择器是坏的
#social a {
}
Run Code Online (Sandbox Code Playgroud)
由于浏览器将读取一个,然后再通过所有的强制循环<A>在网页的代码.
但是为什么选择器如[title ="home"]比使用类慢?
我假设浏览器创建某种索引,以便能够找出哪些元素具有某个类(正确?).
但是浏览器是否也应该索引哪些元素具有某种属性?(如标题)?
我的问题是 ; 与使用类相比,使用 诸如[title ="home"]之类的选择器时,为什么CSS /元素看起来更慢?浏览器的行为是什么或如何使结果变得如此慢?
假设我想创建一个名为的全局对象Hello并world在该对象上添加函数,以便浏览器中的任何其他 JavaScript 库都可以简单地调用它window.Hello.world();
如何在 Dart lang 中创建这样的对象,以及如何将其公开/全局放置/放在window对象上?
在纯 JavaScript 中,我将能够编写:
window.Hello = {
world: function() {
console.log("Hello World!");
}
}
window.Hello.world();
Run Code Online (Sandbox Code Playgroud)
但是你如何在 Dart 中做到这一点?
我已经并遵循了Internet上的一些注释处理工具(APT)指南(例如1和2),并设法使其在编译器/构建时间中运行,甚至使其在Eclipse中运行。
有没有一种方法可以在运行时使用APT使用注释来获取类型(类)的列表。
我写了类似的东西:
@SupportedAnnotationTypes("com.domain.MyAnnotation")
public class MyAbstractProcessor extends AbstractProcessor {
public static Map<Element, MyAnnotation> patches = new HashMap<Element, MyAnnotation>();
@Override
public boolean process(final Set<? extends TypeElement> annotations, final RoundEnvironment roundEnvironment) {
// Get all classes that has the annotation
Set<? extends Element> classElements = roundEnvironment.getElementsAnnotatedWith(MyAnnotation.class);
// For each class that has the annotation
for (final Element classElement : classElements) {
patches.put(classElement, annotation);
Run Code Online (Sandbox Code Playgroud)
因此,将使用注释使用类列表填充MyAbstractProcessor.patches。除了此APT在构建时而非运行时执行的缺陷外,这是一个高尚的想法。
甚至可以在运行时使用APT吗?
还是我使用错误的框架来获取我想要的?
鉴于此代码:
abstract class Animal {
String name;
Animal (String this.name) {
}
}
class Dog extends Animal {
// Why does this fail
Dog() {
super("Spot");
print("Dog was created");
}
// Compared to this
// Dog() : super("Spot");
}
Run Code Online (Sandbox Code Playgroud)
根据多个文档:
您可以使用以下语法调用超类的构造函数:
Dog() : super("Spot");
Run Code Online (Sandbox Code Playgroud)
我假设这是一种快速调用超类构造函数的快捷语法.但是,如果我还想在Dog的构造函数中做更多的事情,例如调用,该怎么办print?
为什么这不起作用,以及编写代码的正确方法是什么?
// Why does this fail
Dog() {
super("Spot");
print("Dog was created");
}
Run Code Online (Sandbox Code Playgroud) 我知道您可以使用Dartium(带有嵌入式Dart VM的Chrome)在浏览器中本地运行Dart代码,您可以将Dart编译为JavaScript.
但是看到我更喜欢使用Firefox进行Web开发,有没有办法在Firefox中直接运行Dart代码?例如通过插件或扩展程序?
我有我想用 Dart 调用的命令。
sonar-runner如果我在普通的 Ubuntu 终端中运行它,该命令将完美运行。这是因为我PATH在.profile的文件,使其成为一个全球性的命令。
但是,如果我写了一个简单的Process.start代码来触发同样的事情:
Process.run('sonar-runner', []).then((result) {
stdout.write(result.stdout);
stderr.write(result.stderr);
});
Run Code Online (Sandbox Code Playgroud)
我得到的回应是:
Uncaught Error: ProcessException: No such file or directory
Command: sonar-runner
Unhandled exception:
ProcessException: No such file or directory
Command: sonar-runner
Run Code Online (Sandbox Code Playgroud)
我猜这是一个 Ubuntu 配置的东西,因为我运行没有问题 ping localhost以同样的方式通过 Dart。
什么可能是错误的,以至于第三方应用程序在将其作为新进程运行时无法找到全局命令?
更新 - 找到解决方案
我找到了我的问题的解决方案,如下所述:
对于我的具体情况,此代码有效:
Process.run("bash", ["-c", "sonar-runner"]).then((result) {
stdout.write(result.stdout);
stderr.write(result.stderr);
});
Run Code Online (Sandbox Code Playgroud) 根据这篇文章
如何在 JavaScript 中正确初始化 ErrorEvent?
您应该能够EventError使用以下代码创建一个:
var error = new ErrorEvent('oh nose', {
error : new Error('AAAHHHH'),
message : 'A monkey is throwing bananas at me!',
lineno : 402,
filename : 'closet.html'
});
Run Code Online (Sandbox Code Playgroud)
但是,如果您在 TypeScript 游乐场中尝试此操作:
它说Supplied parameters do not match any signature of call target.
即使这个简单的例子也无法编译:
var error = new ErrorEvent('oh nose');
Run Code Online (Sandbox Code Playgroud)
我试图通过查看类型定义来弄清楚
https://github.com/Microsoft/TypeScript/blob/master/lib/lib.es6.d.ts#L9612
但想不通。
在 TypeScript 中创建完全合法的内容还缺少什么EventError?
我正在尝试为我们的 iOS 应用程序接收“数据”有效负载通知。
今天,我们可以notification根据以下内容发送 GCM推送通知:
https://developers.google.com/cloud-messaging/concept-options
(FCM有相同的文字)
一个简单的测试是使用 CURL:
curl -X POST \
https://gcm-http.googleapis.com/gcm/send \
-H 'authorization: key=##_GCM_SERVER_ID_##' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-H 'postman-token: ##_POSTMAN_TOKEN_##' \
-d '{
"notification": {
"body": "Test body"
},
"to" : "##_DEVICE_TOKEN_##"
}
'
Run Code Online (Sandbox Code Playgroud)
这将成功触发iOSAppDelegate.didReceiveRemoteNotification:fetchCompletionHandler功能。
但是,如果将其更改为data通知:
curl -X POST \
https://gcm-http.googleapis.com/gcm/send \
-H 'authorization: key=##_GCM_SERVER_ID_##' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-H 'postman-token: ##_POSTMAN_TOKEN_##' \
-d '{
"data": {
"body": "Test …Run Code Online (Sandbox Code Playgroud) notifications ios google-cloud-messaging firebase-cloud-messaging
我有一个使用 Google Analytics 跟踪的网站,我有一个监听事件的目标EVENT1。
如果我打开一个私人标签并转到页面 P1,我可以看到它被注册为登录页面。都好。
然后我访问第二个页面 P2,然后发送事件 EVENT1(连接到目标)我将看到登录页面现在获得了目标转换。都好。
这是我正在谈论的视图(请注意图像中的数据与我的示例相符!):
但是,如果我创建一个新的 GA 会话,从而获得一个新的客户端 ID(假设 ID 是CID123),请访问页面 P1 然后是 P2,但是我的后端通过测量协议将事件发送到 Google Analytics,我在其中指定cid=CID123,那么着陆页转换不起作用。
我可以看到事件进入 Google Analytics,我可以看到目标增加,但由于某种原因,着陆页转换状态不起作用。
所以我的问题是..
.. 我如何将前端 GA 会话与我通过测量协议发送的任何内容连接起来?
由于着陆页转换没有更新,似乎我在后端命中中缺少信息以允许 Google Analytics 了解其相同的会话。
指定客户端 IDcid=是唯一需要的吗?或者我需要附加任何其他字段/属性/数据以将它们连接起来吗?
dart ×4
java ×2
annotations ×1
apt ×1
class ×1
css ×1
dart-io ×1
dart-pub ×1
firefox ×1
inheritance ×1
ios ×1
jetty ×1
performance ×1
typescript ×1
ubuntu ×1