我有这个片段:
SELECT
CASE WHEN
AVG(UNIX_TIMESTAMP(tDone)-UNIX_TIMESTAMP(tIPN))/3600 >= 10
THEN
ROUND(AVG(UNIX_TIMESTAMP(tDone)-UNIX_TIMESTAMP(tIPN))/3600,0)
ELSE
ROUND(AVG(UNIX_TIMESTAMP(tDone)-UNIX_TIMESTAMP(tIPN))/3600,1)
END
FROM
...
Run Code Online (Sandbox Code Playgroud)
我可以做任何事情来删除重复吗?沿着这些方向的东西,例如:(假设代码如下):
SET var = AVG(UNIX_TIMESTAMP(tDone)-UNIX_TIMESTAMP(tIPN))/3600
SELECT
CASE WHEN
var > 10
THEN
ROUND(var,0)
ELSE
ROUND(var,1)
END
FROM
...
Run Code Online (Sandbox Code Playgroud) 我为click事件设置了两个事件处理程序.一个在<th>表中的所有s上,另一个在文档上的通用的.
<th>处理程序中的部分代码更改了单击元素的innerHTML.至关重要的是,我认为标签内部有一个锚th标签.
文档处理程序中的部分代码检查单击元素的parentNode.
这似乎是这两个事实导致一个问题.如果我注释掉innerHTML修改行,一切正常.如果我把它留在里面,我会得到元素的"null" parentNode.
这是一个已知的问题,如果是这样的解决方案是什么?这是Chrome中的错误,还是JavaScript/DOM因某种原因而导致的行为?
function isInside(eChild, eParent) {
alert('element is ' + eChild);
if (eChild === eParent) {
return true;
}
if (eChild === document) {
return false;
}
return isInside(eChild.parentNode, eParent);
}
function init1() {
document.getElementById('th').addEventListener('click', function(e) {
document.getElementById('th').innerHTML = '<a href="#">Changed</a>';
});
}
function init2() {
document.addEventListener('click', function(e) {
if (isInside(e.target, document.getElementById('table'))) {
alert('found in table');
} else {
alert('not found in table');
}
});
}
init1();
init2(); …Run Code Online (Sandbox Code Playgroud)我正在尝试延迟加载 facebook 客户聊天插件,以避免对每个页面加载的性能造成影响。
我的想法是,与其在客户可能想要与聊天互动的机会的每个页面上都包含 FB sdk,我可以只拥有一个用户单击的聊天图标,然后加载 sdk。
对我来说似乎很有意义。
加载 javascript 时有一点延迟,但没关系,我在聊天图标上放了一些脉动动画,让用户知道发生了什么事。
问题是如果他们已经在某个时候关闭了一个聊天对话,它就不会重新打开:
来自https://developers.facebook.com/docs/messenger-platform/discovery/customer-chat-plugin:
默认情况下,问候对话框将显示在桌面上并在移动设备上最小化。用户还可以单击以显示或最小化对话框。在页面会话期间(包括页面重新加载),此状态会缓存在浏览器上。
那第一部分是好的-我可以设置greeting_dialog_display到'show'非常容易。但是如果他们已经关闭了前一页上的聊天窗口,那么该状态的缓存就会成为一个问题;他们点击了我的假聊天图标,SDK 加载...然后什么也没有发生——他们必须再次点击该图标才能打开聊天窗口。根本不是很好的用户体验。
我能做些什么来解决这个问题吗?我已经使用 devtools 查看了幕后的代码,但坦率地说,我无法理解它,即使可以,我也不确定我是否可以与它进行交互,因为聊天的主体小部件似乎在 iframe 中?
这是我的代码,并不是大部分与问题非常相关:
HTML/JS:
<img id="fake-chat" onclick="loadRealChat();" src="/img/facebook-chat.svg">
<div class="fb-customerchat" page_id="293008574697" greeting_dialog_display="show"></div>
<script>
function loadRealChat() {
_('fake-chat').style.animation='pulse 0.5s linear 6';
_('fake-chat').insertAdjacentHTML('afterend', '<div class="fb-customerchat" page_id="PAGE_ID" greeting_dialog_display="hide"></div>');
window.fbAsyncInit = function() {
FB.init({
appId : 'APP_ID',
autoLogAppEvents : true,
xfbml : true,
version : 'v3.0'
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;} …Run Code Online (Sandbox Code Playgroud) 我在 CentOS 6 机器上有一个相当(我认为)正常的设置。
我的网站位于 /var/www/sites 中。
我为每个文件夹中的每个文件夹都有一个 git 存储库。
我想为各种配置文件创建一个 git 存储库:
我觉得我可以在 /etc/ 文件夹中创建一个 git 存储库,使用带有 * 通配符的 .gitignore 来忽略所有文件,然后强制添加我感兴趣的特定文件。这是不好的做法吗?感觉有点“脏”。
如果我决定 /etc/ 之外有一个我想要的重要文件,也许某些配置最终位于 /opt/ 中,该怎么办?所以也许我应该在 / 上创建一个存储库。嗯,开始感觉更脏了,特别是因为这个存储库将“包含”我的网站存储库......即使它们通过通配符 .gitignore 被排除在外 - 这似乎有点......错误。是吗?
我想另一种方法是创建一个 /config/ 目录,其中包含一个存储库,将所有相关文件移至其中,然后添加文件所在位置的符号链接。不知道这是否会导致不必要的并发症/问题?
想必我不是第一个想要“配置存储库”的人 - 大多数人最终会做什么?
谢谢
当宽度为 1000px 或更大时,我希望 div 为其容器宽度的 80%。
当宽度为 600px 或更小时,我希望它是容器宽度的 100%。
在中间,我希望它在中间。
http://jsfiddle.net/ayjtr1q4/9/
div {
background: #def;
height: 100px;
margin: 0 auto;
}
@media screen and (min-width: 1000px) {
div {
width: 80%
}
}
@media screen and (min-width: 601px) and (max-width: 999px) {
div {
/* what goes in here? */
}
}
@media screen and (max-width: 600px) {
div {
width: 100%
}
}Run Code Online (Sandbox Code Playgroud)
<div>
As you resize the screen this snaps from 80% to 100%. I'd like to …Run Code Online (Sandbox Code Playgroud)我想模仿用户在查看我的网页时缩小到80%的情况。遵循以下原则
`google-chrome --headless --disable-gpu --screenshot --zoom=0.8 --window-size=1920,1080 http://www.example.com/`
Run Code Online (Sandbox Code Playgroud)
但是“ zoom”属性不存在,在此列表中我找不到任何可比的东西:
https://peter.sh/experiments/chromium-command-line-switches/
对于人们来说,这肯定是一件很平常的事情,所以我觉得我一定错过了一些简单的事情……
我在安装新的 MariaDB 10.5.8 时遇到问题。 STRICT_TRANS_TABLES已设置,当我尝试使用$sql:
'INSERT INTO test (flag) VALUES (?)'
Run Code Online (Sandbox Code Playgroud)
(其中flag定义为tinyint(1)),var_dump($params)显示为:
array(1) {
[0]=>
bool(false)
}
Run Code Online (Sandbox Code Playgroud)
我收到这条消息:
Incorrect integer value: '' for column `mydb`.`test`.`flag` at row 1
Run Code Online (Sandbox Code Playgroud)
相反,如果我这样做:
'INSERT INTO test (flag) VALUES (false)'
Run Code Online (Sandbox Code Playgroud)
没有参数,它按预期工作。
这是我连接到数据库的方式:
$this->PDO = new PDO('mysql:host=' . DB_SERVER . ';dbname=' . DB_NAME . ';charset=utf8mb4', DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_STRINGIFY_FETCHES => false,
]);
$this->PDO->query("SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci'");
Run Code Online (Sandbox Code Playgroud)
这就是我将查询/参数发送到 …
ImageMagick中有很多"隔行"选项,但我并不真正理解其中的区别.标题中的所有选项似乎都会生成一个类似的JPG文件 - 也许如果我有一个较慢的/受限制的连接,我可以辨别出差异.
有什么实际区别吗?应该选择一个吗?
谢谢
我在表单上有一个提交事件处理程序(用于捕获提交表单的人,有时我需要通过dispatchEvent手动触发(由用户点击提交按钮以外的其他内容触发).
我不希望它实际提交表单,但是一旦dispatchEvent被解雇了,我似乎无法取消它?
myForm.addEventListener('submit', function(e) {
e.preventDefault();
console.log(e.defaultPrevented); // false
});
myForm.dispatchEvent(new Event('submit', {'detail': 'mydetail'}));
Run Code Online (Sandbox Code Playgroud)
在Chrome中,这仍然会输出false,但表单不会提交(所需的行为).事实上,即使我删除了preventDefault()行,它仍然没有提交?
但是,Firefox是一个不同的故事,并始终提交表单.
我怎么能改变这个?
一般来说,我使用 PHP 和 ImageMagick,但据我所知,ImageMagick 组似乎拒绝实现创建/理解动画 PNG 文件的能力?
我可以使用什么工具来获取十几个 JPEG 文件并从中创建动画 PNG?我更喜欢 PHP api,但如果需要,我可以扩展到另一种语言!
谢谢