使用ES6,我可以从这样的文件中导入几个导出:
import {ThingA, ThingB, ThingC} from 'lib/things';
Run Code Online (Sandbox Code Playgroud)
但是,我喜欢每个文件有一个模块的组织.我最终得到这样的导入:
import ThingA from 'lib/things/ThingA';
import ThingB from 'lib/things/ThingB';
import ThingC from 'lib/things/ThingC';
Run Code Online (Sandbox Code Playgroud)
我希望能够做到这一点:
import {ThingA, ThingB, ThingC} from 'lib/things/*';
Run Code Online (Sandbox Code Playgroud)
或类似的东西,理解的约定是每个文件包含一个默认导出,并且每个模块的名称与其文件相同.
这可能吗?
我想在将一些div或输入添加到html时执行一个函数.这可能吗?
例如,添加文本输入,然后应该调用该函数.
如果我删除3.1G日志文件,sudo service mongodb restart将失败.但是,这个文件占用了太多空间.我怎么解决这个问题?我该如何删除它?
bash$ du -sh /var/lib/mongodb/*
4.0K _tmp
65M auction_development.0
128M auction_development.1
17M auction_development.ns
3.1G journal
4.0K mongod.lock
Run Code Online (Sandbox Code Playgroud) 我需要一种有效的机制来检测DOM的变化.最好是跨浏览器,但如果有任何有效的方法不是跨浏览器,我可以使用故障安全的跨浏览器方法实现这些.
特别是,我需要检测会影响页面上文本的更改,因此需要任何新的,删除或修改的元素或对内部文本(innerHTML)的更改.
我无法控制正在进行的更改(它们可能是由于第三方javascript包含等),因此无法从这个角度进行处理 - 我需要以某种方式"监视"更改.
目前我实施了一个"quick'n'dirty"方法,body.innerHTML.length每隔一段时间检查一次.这当然不会检测导致返回相同长度的变化,但在这种情况下"足够好" - 这种情况发生的可能性非常小,并且在此项目中,未能检测到更改将不会导致丢失的数据.
问题body.innerHTML.length是它很贵.在快速浏览器上可能需要1到5毫秒,这可能会让事情陷入困境 - 我也在处理大量的iframe,而且这些都会增加.我很确定这样做的代价是昂贵的,因为innerHTML文本不是由浏览器静态存储的,并且每次读取时都需要从DOM计算.
我正在寻找的答案类型是从"精确"(例如事件)到"足够好"的任何东西 - 或许像innerHTML.length方法一样"quick'n'dirty",但执行速度更快.
编辑:我还应该指出,虽然检测已经修改过的精确元素会"很好",但这并不是绝对必要的 - 只要有任何改变这一事实就足够了.希望这能够扩大人们的反应.我将调查突变事件,但我仍然需要IE支持的后备,所以任何笨拙的,创造性的,非常方形的想法将是非常受欢迎的.
关于将未来的操作绑定到不存在的元素上存在很多问题,这些元素最终都以live/delegate回答.我想知道如何运行任意回调(例如,添加类或触发插件)到匹配选择器的所有现有元素以及与尚未创建的相同选择器匹配的所有未来元素.
似乎livequery插件的主要功能使其成为核心,但另一部分,附加任意回调在某种程度上丢失了.
另一个常见的答案是事件委派,但是如果一个人无法访问创建元素以触发事件的所有供应商代码,该怎么办?
这是一些现实世界的代码:
// with livequery
$('input[type=text], input[type=password], textarea, .basic_form .block select, .order_form .form_item select, .order_form .form_item input')
.livequery(function(){
$(this)
.focus(function(){
$(this).addClass('active');
})
.blur(function(){
$(this).removeClass('active');
})
.addClass('text');
});
// with live
$('input[type=text], input[type=password], textarea, .basic_form .block select, .order_form .form_item select, .order_form .form_item input')
.live('focus', function(){
$(this).addClass('active');
})
.live('blur', function(){
$(this).removeClass('active');
});
// now how to add the class to future …Run Code Online (Sandbox Code Playgroud) 这是我的代码:
$a = 5;
$b = &$a;
echo ++$a.$b++;
Run Code Online (Sandbox Code Playgroud)
不应该打印66?
为什么打印76?
我有简单的Javascript代码,类似于这个:
var mouseIsDown = false;
...
function canvasMouseDown(e) {
...
mouseIsDown = true;
}
function canvasMouseUp(e) {
mouseIsDown = false;
}
function canvasMouseMove(e) {
if (mouseIsDown) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
实现我自己的用户界面,用于使用画布进行转换(平移,缩放和旋转).
canvasMouseMove()函数检查mouseIsDown变量中的这种实现.如果用户在光标/指针位于canvas元素之外时未释放鼠标按钮,则一切正常.如果发生这种情况,变量将mouseIsDown保持true并且不会被canvasMouseUp函数关闭.
对于这个问题,纯JavaScript (没有jQuery)的简单修复或解决方案是什么?
假设我编译了下面的应用程序并删除了它的符号.
#include <stdio.h>
int main()
{
printf("Hello\n");
}
Run Code Online (Sandbox Code Playgroud)
构建过程:
gcc -o hello hello.c
strip --strip-unneeded hello
Run Code Online (Sandbox Code Playgroud)
如果应用程序没有被剥离,则拆卸主要功能将很容易.但是,我不知道如何反汇编应用程序的主要功能.
(gdb) disas main
No symbol table is loaded. Use the "file" command.
(gdb) info line main
Function "main" not defined.
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?它甚至可能吗?
注意:这必须仅使用GDB.忘掉objdump.假设我无权访问代码.
我们将非常感谢一步一步的例子.
已知DOMNodeInserted使动态页面变慢,MDN甚至建议不要完全使用它,但不提供任何替代方案.
我对插入的元素不感兴趣,我只需要知道一些脚本何时修改DOM.是否有更好的替代突变事件监听器(可能是nsiTimer中的getElementsByTagName)?
这篇文章最近登上了HackerNews的顶部:http://highscalability.com/blog/2013/9/18/if-youre-programming-a-cell-phone-like-a-server-youre-doing.html#
其中声明:
电池收音机是手机上最大的电池电量之一.每次发送数据时,无论多小,收音机都会通电20-30秒.您做出的每一个决定都应该基于最小化无线电启动的次数.通过更改应用处理数据传输的方式,可以显着提高电池寿命.用户现在需要他们的数据,诀窍是平衡用户体验与传输数据和最小化电源使用.通过小心地将所有重复和间歇传输捆绑在一起然后积极地预取间歇传输的应用程序来实现平衡.
我想修改$.ajax补充,如"并不需要做一个选择,现在,只是做这个请求时,另一个请求启动".有什么好办法可以解决这个问题?
我从这开始:
(function($) {
var batches = [];
var oldAjax = $.fn.ajax;
var lastAjax = 0;
var interval = 5*60*1000; // Should be between 2-5 minutes
$.fn.extend({batchedAjax: function() {
batches.push(arguments);
}});
var runBatches = function() {
var now = new Date().getTime();
var batched;
if (lastAjax + interval < now) {
while (batched = batches.pop()) {
oldAjax.apply(null, batched);
}
}
}
setInterval(runBatches, interval);
$.fn.ajax = function() {
runBatches();
oldAjax.apply(null, arguments);
lastAjax = …Run Code Online (Sandbox Code Playgroud) javascript ×7
dom ×3
jquery ×2
linux ×2
ajax ×1
asynchronous ×1
c ×1
dhtml ×1
disassembly ×1
disk ×1
ecmascript-6 ×1
es6-modules ×1
events ×1
gdb ×1
mongodb ×1
php ×1
strip ×1