在我的国际象棋应用程序中,我Firebase.ServerValue.TIMESTAMP用来记录移动的时间.
假设用户有24小时的移动时间.如果他们在24小时内没有采取行动,他们将输掉比赛.
我想显示用户离开的时间.要计算这个,我需要知道当前的unix时间戳,然后我会这样做:
time left = (last move unix timestamp) + (24 hours) - (current unix timestamp)
Run Code Online (Sandbox Code Playgroud)
我觉得假设用户的机器时间正确可能不是最好的主意.
有没有办法从Firebase服务器获取unix时间戳?
在我的国际象棋应用程序中,我Firebase.ServerValue.TIMESTAMP用来记录移动的时间,例如:
{
from: 'e2',
to: 'e4',
playedAt: Firebase.ServerValue.TIMESTAMP
}
Run Code Online (Sandbox Code Playgroud)
我怎么能验证那playedAt是Firebase.ServerValue.TIMESTAMP不是像1408663907743这样的任意时间戳?
我预计火力地堡安全规则有等的方法isTimestamp(),将工作同样要isNumber()和isString(),但我找不到一个.
我用gulp-livereload在我的gulpfile.js.
它适用于CSS文件,但崩溃的HTML文件.
例如,每次保存时index.html,gulp都会崩溃并出现以下错误.
为什么会这样?
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at errnoException (net.js:904:11)
at Server._listen2 (net.js:1042:14)
at listen (net.js:1064:10)
at Server.listen (net.js:1138:5)
at Function.app.listen (/Users/mishamoroshko/github-explorer/node_modules/express/lib/application.js:556:24)
at Gulp.<anonymous> (/Users/mishamoroshko/github-explorer/gulpfile.js:64:10)
at module.exports (/Users/mishamoroshko/github-explorer/node_modules/gulp/node_modules/orchestrator/lib/runTask.js:34:7)
at Gulp.Orchestrator._runTask (/Users/mishamoroshko/github-explorer/node_modules/gulp/node_modules/orchestrator/index.js:273:3)
at Gulp.Orchestrator._runStep (/Users/mishamoroshko/github-explorer/node_modules/gulp/node_modules/orchestrator/index.js:214:10)
at /Users/mishamoroshko/github-explorer/node_modules/gulp/node_modules/orchestrator/index.js:279:18
Run Code Online (Sandbox Code Playgroud) 我有一个 UI 自动建议组件,它按照用户类型执行 AJAX 请求。例如,如果用户键入mel,则响应可能是:
{
suggestions: [{
id: 18,
suggestion: 'Melbourne'
}, {
id: 7,
suggestion: 'East Melbourne'
}, {
id: 123,
suggestion: 'North Melbourne'
}]
}
Run Code Online (Sandbox Code Playgroud)
UI 组件实现客户端缓存。因此,如果用户现在单击b(melb检索结果),然后Backspace,浏览器已经mel在内存中具有结果,因此它们可以立即可用。换句话说,每个客户端对每个给定的输入最多进行一次 AJAX 调用。
现在,我想在此之上添加服务器端缓存。因此,如果一个客户端对 执行 AJAX 调用mel,并且假设正在进行一些繁重的计算来准备响应,则其他客户端将在不再次执行此繁重计算的情况下获得结果。
我可以简单地获得查询和结果的散列,但我不确定这是实现这一目标的最佳方式(内存问题)。数据集中有大约 20000 条建议。
实现服务器端缓存的最佳方法是什么?
订阅时我有注册ID,但是当我收到推送通知时,我无法弄清楚如何在服务工作文件中获取它?
client.js
pushManager.subscribe({ userVisibleOnly: true }).then(({ endpoint }) => {
const registrationId = endpoint.split('https://android.googleapis.com/gcm/send/')[1];
// How do I get this registrationId in service-worker.js below?
});
Run Code Online (Sandbox Code Playgroud)
服务worker.js
self.addEventListener('push', event => {
// I'd like to make a request to server to get the notification data, but I need the registrationId for that. How do I get registration id here?
});
Run Code Online (Sandbox Code Playgroud) 您能否解释以下示例中的第一个SVG为什么要占用布局空间,即使它具有width="0"和height="0"?
是否可以以不影响布局的方式设置样式?
body {
display: flex;
}
.container {
background-color: #ddd;
margin-left: 30px
}
#blue {
border: 1px solid blue;
}
#red {
border: 1px solid red;
display: block;
}Run Code Online (Sandbox Code Playgroud)
<div class="container">
<svg id="blue" width="0" height="0"></svg>
<svg id="red" width="100" height="100"></svg>
</div>
<div class="container">
<svg id="red" width="100" height="100"></svg>
</div>Run Code Online (Sandbox Code Playgroud)
给定一个 30 多岁的普通网络视频:
<video src="my-video.mp4"></video>
Run Code Online (Sandbox Code Playgroud)
我怎样才能生成它的音量级别图表?
volume|
level| ******
| * * **
| * * * **
|** * *** *
| ** * * * *
+---------------*-*-----************------+--- time
0 30s
video is and quiet
loud here here
Run Code Online (Sandbox Code Playgroud)
笔记:
这个例子非常接近我需要的,除了urls提前不知道(不能对它们进行硬编码)。
它们是通过运行脚本在挂钩urls中生成的:before()
before(() => {
cy.exec(<run script that generates a temporary urls.json file>);
cy.readFile("./urls.json")....
});
Run Code Online (Sandbox Code Playgroud)
我如何根据生成的动态生成单独的测试urls.json?
他们需要单独测试的原因是这样的。
我有一个背景图像,其上有一些文字.由于背景原因,阅读文本非常困难.我想在文本本身周围添加一个白色背景,以便可以轻松阅读文本.如何使用CSS/Javascript/jQuery实现这一目标?
为什么以下代码运行如此....慢.......?
<html><body><script type="text/javascript">
var i = 0;
f();
function f() {
if (i == 5000) {
document.write("Done");
} else {
i++;
tail();
}
}
function tail() {
var fn = tail.caller;
var args = arguments;
setTimeout(function() {fn.apply(this, args)}, 0);
};
</script></body></html>
Run Code Online (Sandbox Code Playgroud)