我正在尝试将两个日期字符串传递给new Date(t).
我希望两个字符串代表相同的时间,毕竟,如果我省略时间,那不应该是那天的午夜吗?
但是,
new Date("2016-02-16 00:00")
Run Code Online (Sandbox Code Playgroud)
返回2016-02-16,午夜,当地时间如预期,
new Date("2016-02-16")
Run Code Online (Sandbox Code Playgroud)
返回2016-02-16,午夜UTC,这是错误的,或者至少不是我预期的另一个字符串解析的内容.
我会理解,如果它们都具有相同的行为,无论是将时间作为本地时间还是作为UTC返回,但是为什么它们返回不同的东西似乎非常不一致.
作为一种解决方法,每当我遇到没有相应时间戳的日期时,我可以附加"00:00"以获得一致的行为,但看起来这似乎相当脆弱.
我从一个类型为'datetime-local'的INPUT元素中获取此值,因此我必须解决页面元素返回的值,这似乎特别不一致.
我做错了什么,或者我应该采取不同的做法?
即使没有其他任何事情发生,这个系统进程似乎使用稳定的1-2%的CPU.在一天的过程中,即使设备没有用于任何东西,也会耗尽大量的电池.我无法将其与任何其他应用程序相关联,因为即使他们在几个小时的过程中仅使用了几秒的CPU时间,此过程也会使用分钟.
即使我:它似乎仍然运行:
我写了一个小测试应用程序,/proc/<pid>/stat每隔10毫秒监视一次,并随时写入logcat com.google.android.gms.persistent,希望它会写入logcat本身的内容,这将确定哪些应用程序或其他服务正在使用"持久"服务.我看不多,但这里有一些我看到过的东西:
InputReader: Reconfiguring input devices. changes=0x00000010
WifiService: acquireWifiLockLocked: WifiLock{NlpWifiLock type=2 binder=android.os.BinderProxy@f73f0b8}
LocationFilter: Forcing stable location. Original location:Location[...
ConnectivityService: notifyType CAP_CHANGED for NetworkAgentInfo [WIFI () - 246]
Run Code Online (Sandbox Code Playgroud)
上面的每一行都是在不同的时间,紧接在检测CPU使用情况的日志消息之前(在10ms内)com.google.android.gms.persistent但没有任何明确指示它是否相关.不幸的是,上述情况都没有报告超过10ms的CPU时间,因此 - 即使准确表示使用"持久"的内容仅代表实际CPU时间的一小部分.
研究使用这个过程的其他尝试已经提出了我没有并且从未连接到我的设备的各种东西(例如可穿戴设备).
什么在使用这个过程?我正在寻找这些信息,或者我可以通过其他方式推断出类似于我通过logcat尝试的信息.
更新:我一直在https://android.googlesource.com上寻找源(例如com.google.android.gms.persistent.java或类似的东西),没有任何运气.这不是公共源代码的一部分吗?什么是真正奇怪的是,有甚至没有出现任何文件,如这里:https://android.googlesource.com/platform/frameworks/base/+/33fca8e/docs/html/reference/com/google/安卓/克
更新2:我在"设置" - >"帐户"下禁用了所有同步.这似乎可以减少CPU的使用量,并且电池掉落似乎已经下降到爬行 - 除了定期com.google.android.gms.persistent似乎仍然需要一点CPU.
我现在的工作理论是,无论是否需要,它都会以大约60秒的间隔发出警报,并且该代码正在检查同步工作,如果不需要同步,它会放弃正确的时间片离开,让CPU正常睡觉.然而,我中途不敢相信会使用这么糟糕的设计,因为每分钟唤醒CPU的任何事情都会使电池耗尽更快,即使它只是重新入睡,为什么会使用轮询而不是中断驱动同步的东西?
据我所知(由于无法找到它),com.google.android.gms.persistent的源代码不是开源的,也不是在线提供的.如果我错了,我会接受作为我的问题的答案,任何指向源代码的答案,因为我可以浏览它并自己确定CPU使用的原因.
我正在使用ES6模板文字在字符串中构造一些HTML,到目前为止它一直运行良好.但是,只要我尝试将文字文本</script>放在我的字符串中,浏览器就会抛出并抛出语法错误:
SyntaxError: Unterminated template literal
Run Code Online (Sandbox Code Playgroud)
这是一个简单的JavaScript示例,它会抛出错误:
var str=`
<script>
</script>
`
var pre = document.createElement('pre')
pre.textContent = str
document.body.appendChild(pre)
Run Code Online (Sandbox Code Playgroud)
请参阅JS Fiddle中的上述代码.
似乎正在发生的事情是,它放弃了寻找最终文字引用,而是开始将所有内容视为文字HTML,因此在该点之后的所有JavaScript都被错误地视为HTML,而事实并非如此!
如果我更换script通过任何其他法律HTML标签(甚至是无效的标签,如scripty),那么它工作得很好,所以我不能看到这可怎么可能是一个语法错误或怪异的情况下,我认为我已经输入一个字符(如反击)但是却输入了另一个看起来很像它的东西.
我实际上是在创建一个字符串(据我所知,在编译时),浏览器不应该试图将其视为HTML或以任何方式解析它.什么给出了什么?
例如,我需要一个BroadcastReceiver来获取这些事件:
重新启动或关闭
屏幕开启或关闭
电池状态(电压,插入,温度)
物理按钮按下(相机,媒体等)
但我需要Listener来获取这些事件:
用于传感器事件的EventListener(加速度,磁场,方向,接近度,温度,光照等)
LocationListener用于位置事件(网络位置,GPS)
似乎接收器和监听器都存在,以便我可以接收事件.除了明显的语义差异外,两者有什么区别?有什么我可以在一个而不是另一个,特别是在屏幕关闭时我可以采取和运行多少CPU的事情?为了接收事件,为什么有两种完全不同的结构?
我试图解决我的Android应用程序遇到的一些问题,我认为这与我在显式"前台"模式(Service.startForeground)中运行时的内存压力有关.
为了调试这个,我需要在我的应用程序上施加内存压力,我可以通过各种方式执行此操作,例如启动各种其他应用程序,例如具有大量网页的Firefox.然而,这不太理想,因为它仍然相当耗时且不精确.所以我的问题是,有没有办法使用调试器强制内存压力(例如在Eclipse下)或者专门用于此目的的特殊应用程序?我宁愿不绕道而不是自己写一个,显然在我自己的应用程序中分配内存是行不通的.
更新:更改标题以反映我需要设备上的实际内存压力,而不是模拟.
我正在尝试编写一个脚本,它本质上充当由(非交互式)命令创建的所有输出的passthru日志,而不会影响命令输出到其他进程.也就是说,stdout和stderr应该看起来像是没有运行我的命令一样.
为此,我尝试将stdout和stderr分别重定向到两个不同的T恤,每个T恤用于不同的文件,然后重新组合它们,使它们仍然分别出现在stdout和stderr上.我已经看到了许多关于发球和重定向的其他问题,并且已经尝试了从这些中收集到的一些答案,但是它们似乎都没有结合将两个分流器分开,然后正确地重新组合它们.
我的尝试成功地将输出拆分为正确的文件,但是实际的stdout/stderr输出没有正确保留流.我在一个更复杂的设置中看到了这一点,所以我创建了简化的命令,我将数据回显到stdout或stderr作为我的"命令",如下所示.
以下是我尝试过的几件事:
{ command | tee ~/tee.txt; } 2>&1 | { tee ~/tee2.txt 1>&2; }
Run Code Online (Sandbox Code Playgroud)
运行我的简单测试我看到:
$ { { { echo "test" 1>&2; } | tee ~/tee.txt; } 2>&1 | { tee ~/tee2.txt 1>&2; } } > /dev/null
test
$ { { { echo "test" 1>&2; } | tee ~/tee.txt; } 2>&1 | { tee ~/tee2.txt 1>&2; } } 2> /dev/null
$
Run Code Online (Sandbox Code Playgroud)
好的,这正如我所料.我正在回应stderr,所以当我只重定向stdout时,当我将最终的stderr重定向到/ dev/null和我的原始echo时,我希望看不到任何内容.
$ { { { echo "test"; } | tee ~/tee.txt; } 2>&1 | { …Run Code Online (Sandbox Code Playgroud) 我已经看到了几个关于如何格式化HTML和javascript代码的问题.一个常见的答案似乎是jsbeautify(以及jsbeautify.js的GitHub页面)是一个很好的解决方案.
但是,我似乎无法正确格式化我的任何代码,我想知道是否有一些需要更改的默认参数,或者我只是误解了美化应该做什么.我期待的是每个嵌套标签都将在新线上缩进到适当的级别.但相反,我所看到的(这似乎不是jsbeautifier独有的)是有时几个标签在同一行上串起来,并且忽略断行的指令.
例1:
我直接从这个问题中得到了这个例子.
<div id="hlogo">
<a href="/">Stack Overflow</a>ABC</div>
Run Code Online (Sandbox Code Playgroud)
当我去jsbeautifer.org并输入上面的代码并点击"Beautify Javascript或HTML"时,它什么也没做!我希望输出看起来像这样:
<div id="hlogo">
<a href="/">Stack Overflow</a>ABC
</div>
Run Code Online (Sandbox Code Playgroud)
这是另一个例子.我选择了"80个字符附近的换行".
<!--Meta 6,1--><span><div>Just some sample text here which is fairly long, maybe about 100 characters or so, I'm not really counting.<input id="sdlkjhfkjhjkjhfjdfjkshdfkjshk"/><script type="text/javascript">;
</script></div></span>
Run Code Online (Sandbox Code Playgroud)
输出结果如下.请注意,没有包装.
<!--Meta 6,1--><span><div>Just some sample text here which is fairly long, maybe about 100 characters or so, I'm not really counting.<input id="sdlkjhfkjhjkjhfjdfjkshdfkjshk"/><script type="text/javascript">;
<
/script></div > < /span>
Run Code Online (Sandbox Code Playgroud)
为什么不<span>,<div> …
我试图通过一些我没写过的PHP代码,我陷入了僵局,我无法弄清楚如何继续.
我已达到类成员函数,如下所示:
public function exec($cmd, $args) {
// ... some argument checks here
$result = $this->$cmd($args);
Run Code Online (Sandbox Code Playgroud)
这段代码在做什么?$ cmd的值是字符串"info",所以我假设它正在调用成员函数"info"...但是当我将跟踪代码放在该函数的顶部时,它不会产生任何输出.
我也尝试使用var_dump($ this - > $ cmd),但它打印出NULL.然而,函数被调用并返回结果,所以var_dump可能无法转储函数?
我在这里找到了另一个答案,表明上述内容无论如何都不行.但是,它肯定是为$ result分配一个复杂的值,我可以在调用返回后转储.
如果重要,我的跟踪代码如下.我正在查看Apache error.log文件,它在其他地方工作正常,所以我假设跟踪代码是好的:
$STDERR = fopen('php://stderr', 'w+');
ob_start();
var_dump($some_variable);
$result999 = ob_get_clean();
fwrite($STDERR, "TRACE: $result999\n");
fclose($STDERR);
Run Code Online (Sandbox Code Playgroud)
更新:我还尝试将一个空的return语句作为"info"函数的第一行,但$result仍然被赋予与之前相同的值...
我正在尝试创建一个包含三个div的页面:页眉,页脚和内容区域.这些应该占据屏幕的100%.
页眉和页脚很小,不会改变,内容区域可以是任何大小,所以我添加overflow:auto了它使它在太大时滚动.
问题是,它溢出了屏幕的高度.我创建了一个小提琴来演示:https: //jsfiddle.net/tdxn1e7p/
我正在使用以下CSS来设置html和body高度,因此容器上的height:100% 技巧将起作用:
html,
body {
height: 100%;
}
Run Code Online (Sandbox Code Playgroud)
我的文件结构是:
<div style="height:100%;">
<div>
Header content
</div>
<div style="overflow:auto;">
Body content... this could be very long
</div>
<div>
Footer content
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我已经在这类问题上找到了很多变化,比如这个问题,但是还没有能够让任何答案对我有用.
我正在尝试获取SVG元素的工具提示.(在Firefox 16.0.2下测试)我尝试了这个小例子,它运行正常:
<svg xmlns="http://www.w3.org/2000/svg">
<rect id="test" x="20" y="30" width="200" height="150">
<title>Test tooltip</title>
</rect>
</svg>
Run Code Online (Sandbox Code Playgroud)
但是,我需要从javascript生成工具提示,因为SVG也是从javascript生成的.所以就像第一次测试一样,我尝试只生成工具提示:
<script type="text/javascript">
function test(text) {
var title = document.createElement("title")
title.text = text
document.getElementById("test").appendChild(title)
}
</script>
</head>
<body onload="test('Test tooltip')">
<svg xmlns="http://www.w3.org/2000/svg">
<rect id="test" x="20" y="30" width="200" height="150">
</rect>
</svg>
Run Code Online (Sandbox Code Playgroud)
当我检查来自Firefox的结果时,标题对象看起来与从HTML/SVG生成的标题相同,只是当我将鼠标悬停在矩形上时没有工具提示!我究竟做错了什么?
javascript ×4
android ×3
html ×2
bash ×1
css ×1
css3 ×1
date ×1
datetime ×1
debugging ×1
ecmascript-6 ×1
js-beautify ×1
listener ×1
memory ×1
php ×1
redirect ×1
script-tag ×1
svg ×1
tee ×1
tooltip ×1