小编bru*_*ais的帖子

如何检测是否触发了DOMContentLoaded

我正在尝试帮助开发一个库,为此我正在尝试使用页面加载.
在这个过程中,我想让库完全兼容defer和async的使用.

我想要的很简单:
我怎么知道DOMContentLoaded在文件执行时被触发了?

为什么这么难?
在IE中,document.readyState在DOMContentLoaded之前显示交互.
不会以任何方式使用浏览器检测,这违反了我和其他参与者的政策.

什么是正确的选择?

编辑:

好像我还不够清楚.我没有兴趣知道是否已经发生加载事件!我已经知道如何解决这个问题!我想知道如何用DOMContentLoaded解决!!!

javascript events readystate

45
推荐指数
3
解决办法
3万
查看次数

推迟代码以便以后在python中执行(比如javascript中的setTimeout)

我有蟒蛇,需要执行一段时间,然后(不要紧,它正在执行),则必须转储信息保存到文件做一个程序,关闭该文件,然后退出.

这里的行为等同于JavaScript来使用setTimeout(func, 1000000),其中第一个参数(FUNC)将是一个指向与退出代码和它的第二个参数的函数将提供给所述程序执行的时间.

我知道如何用C语言创建这个程序(使用SO信号)但是使用python

python

34
推荐指数
4
解决办法
2万
查看次数

使用querySelectorAll().订购的方法返回的结果是?

我正在尝试制作一个适用于多个页面的js代码.我正在尝试使用querySelectorAll()从DOM中获取元素.

我需要订购的元素.为了做到这一点,我可以使用xPath或选择器(我更喜欢使用选择器,但xPath也可以).问题是:
querySelectorAll()返回的NodeList中的元素是否按照标记在HTML中出现的顺序排序?

注意:我想添加标签:querySelectorAll

javascript css css-selectors selectors-api

32
推荐指数
1
解决办法
6886
查看次数

如何从输入读取,直到使用scanf()找到换行符?

当我应该从输入读取直到有空格然后直到用户按下回车时,我被要求在C中完成工作.如果我这样做:

scanf("%2000s %2000s", a, b);
Run Code Online (Sandbox Code Playgroud)

它将遵循第一条规则而不是第二条规则.
如果我写:

I am smart

我得到的相当于:
a ="我";
b ="am";
但它应该是:
a ="我";
b ="很聪明";

我已经尝试过:

scanf("%2000s %2000[^\n]\n", a, b);
Run Code Online (Sandbox Code Playgroud)

scanf("%2000s %2000[^\0]\0", a, b);
Run Code Online (Sandbox Code Playgroud)

在第一个,它等待用户按Ctrl+ D(发送EOF),这不是我想要的.在第二个,它不会编译.根据编译器:

警告:'%['格式没有关闭']'

有什么好办法解决这个问题吗?

c format scanf

18
推荐指数
3
解决办法
11万
查看次数

localStorage不会在两个页面之间持久存储

我正在开发一个应用程序,在某些时候,我需要存储需要在多个页面之间持久化的信息,更可能的是,它只会是2页.信息量在几个字节到大约15KB之间变化(永远不会超过20KB).我事先无法正确预测它会有多少.

为此,我决定使用localStorage.

现在我只在localhost:8080上工作.

这些页面现在只有通用名称:pageA.php和pageB.php.

页面驻留在域的根目录中.即

http://localhost:8080/pageA.php
http://localhost:8080/pageB.php
Run Code Online (Sandbox Code Playgroud)

...

在某些时候,我将数据存储在localStorage上,在pageA.php上(我确实使用了setItem()方法).

当用户移动到pageB.php时,pageB.php的脚本会尝试获取存储在pageA.php中的数据.
问题是getItem()总是在pageB.php上返回null

我确实检查了我正在使用的按键,它们是相同的,所以那里应该没有问题.

我已经检查过,只要网址没有改变,存储的数据就会在页面加载之间保持不变.

我在这做错了什么?

注意:仅在Firefox 19和chrome 24上测试过

javascript dom local-storage

7
推荐指数
1
解决办法
1575
查看次数

git clone有效; git子模块失败"权限被拒绝"

在gitlab的私有存储库中,当我运行git clone git@git.privateserver.local:group/project-submodule.git克隆成功完成时.
作为克隆过程的一部分,我被要求提供私钥的密码.

当我运行 submodule update --init "group/project-submodule"
它失败时:

许可被拒绝,请再试一次.许可被拒绝,请再试一次.权限被拒绝(publickey,gssapi-keyex,gssapi-with-mic,密码).致命:无法从远程存储库读取.

在尝试处理子模块时,我没有被要求为我的私钥密码.

(我不得不匿名)

致命:将'git@git.privateserver.local:group/project-submodule.git'克隆到子模块路径'C:/ Users/user/repos/project-module/project-submodule'失败

我检查了.gitmodules文件,它包含正确的数据(我认为可以通过错误消息确认).

引起我注意的主要因素是我没有被问到我的私钥密码.甚至更奇怪,因为当我git clone直接使用时,它会按预期运行.

我也已经通过访问进行了诊断ssh并且它询问了我的密码,就像我执行拉或克隆时发生的那样

使用git for windows"git version 2.16.2.windows.1"

git git-submodules gitlab windows-10 git-for-windows

7
推荐指数
3
解决办法
3085
查看次数

grep查找包含"\ t"的行

我被要求制作一个shell脚本来检查文件中的简单错误.我想找到,对于每一行如果

(正则表达式:)"[]\t"永远发生.

问题是grep忽略了\并且将"t"作为文字.我也尝试将字符本身写入文件并要求grep读取它但它不起作用.有没有办法在使用任何常用的linux工具(如grep)的文件中找到正则表达式"\ t"?

我已经尝试过:

grep -E --ignore-case --line-number --with-filename --file="b" file
Run Code Online (Sandbox Code Playgroud)

(b包含:"")并且还:

grep -E --ignore-case --line-number --with-filename --regexp=" [\t]" file
Run Code Online (Sandbox Code Playgroud)

grep

5
推荐指数
2
解决办法
1万
查看次数

DOM导航:消除文本节点

我有一个读取和解析XML的js脚本.它从XMLHttpRequest请求获取XML(它与返回XML的php脚本联系).该脚本应该在第一个parentNode下接收2个或更多节点.它需要的2个节点具有良好定义的名称,其他节点可以是任何名称.php的输出可能是:

<?xml version='1.0'?>
<things>
    <carpet>
        <id>1</id>
        <name>1</name>
        <desc>1.5</desc>
    </carpet>
    <carpet>
        <id>2</id>
        <name>2</name>
        <height>unknown</height>
    </carpet>
</things>
Run Code Online (Sandbox Code Playgroud)

这里所有地毯都有7个节点.

但它也可能是:

<?xml version='1.0'?>
<things>
    <carpet>
        <id>1</id>
        <name>1</name>
        <desc>1.5</desc>
    </carpet>
    <carpet><id>2</id><name>2</name><height>unknown</height></carpet>
</things>
Run Code Online (Sandbox Code Playgroud)

这里第一个地毯有7个节点,第2个地毯有3个节点.我希望我的javascript代码能够以快速而简洁的方式处理两种方式.如果可能,我想删除每个标记之间的所有文本节点.所以像上面这样的代码总是被视为:

<?xml version='1.0'?>
    <things><carpet><id>1</id><name>1</name><desc>1.5</desc></carpet><carpet><id>2</id><name>2</name><height>unknown</height></carpet></things>
Run Code Online (Sandbox Code Playgroud)

这是否可以快速有效地进行?我想不使用任何get函数(getElementsByTagName(),getElementById,...),如果可能的话,如果更有效.

javascript xmldom

3
推荐指数
1
解决办法
1650
查看次数

C linux内部区别O_WRONLY和O_RDWR如果只是写入

我知道公开发售这些相互排斥的标志:O_RDONLY, O_WRONLYO_RDWR.

我想知道:是否有任何性能问题(即使它只是一小部分ms)或处理文件的不同方式如果文件打开为O_RDWR

  • 我只写到文件.(与O_WRONLY一样开放)
  • 我只读取文件中的数据.(与O_RDONLY一样开放)

c linux file-io

3
推荐指数
1
解决办法
2361
查看次数

将表格上方的按钮放在桌子右侧

如何将按钮放在与右边对齐的桌子上方?

想象一下放置在桌子右侧的假想垂直线.我希望按钮的右边界限放在那条线的位置.这是一个草案:

示例ilustrated http://i53.tinypic.com/2mhwgzr.png 正如您所看到的,该按钮与表格相关,并且不属于该表格.
该表的大小设置为auto.
我已经尝试使用div作为包装,但这不起作用.任何替代品?

添加:我忘了:桌子应该对齐左边.

html css layout

2
推荐指数
1
解决办法
3404
查看次数

当浏览器本身没有实现它时,创建我自己的classList对象

我有JavaScript代码,使用该classList对象添加和删​​除类.代码启动并按预期正常工作,直到我收到有关它的投诉,因为它在Opera和IE8中不起作用.

我不想使用任何框架或代码库.我想将我必须在程序中更改的代码减少到最大值,因此我想创建自己的classList对象并将其添加到节点对象中.我已经有了这个代码:

if (typeof(document.createElement('input').classList) == 'undefined') {
    HTMLElement.prototype.classList = new function () {
        this.add = function (addClass) {
            this.className += addClass;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这显然不起作用.问题是:我无法HTMLElement.className像这样访问此对象.我怎么能做到这一点?如何使此对象与原始对象类似或完全相同?

javascript dom

1
推荐指数
1
解决办法
1390
查看次数

创建一个内部数组具有不同长度的数组

如果我在编译时知道数组的格式,我已经知道如何在Java中创建不同长度的数组.
例如:

char[][] array = { { 'a', 'b', 'c'}, {'d'}, {'e', 'f'}}; //etc....
Run Code Online (Sandbox Code Playgroud)

问题是我需要在运行时制作.我不知道在编译时我需要的数组大小,但我会在运行时知道它.

这里的目标是在java中创建(并且在java中具有数组的优点(如.length))来制作C中的内容:

char[][] arrayC = malloc(outerArraySize);
for(int i = 0; i < outerArraySize; i++){
    arrayC[i] = malloc(innerArraySize[i]);
}
Run Code Online (Sandbox Code Playgroud)

这个C代码在这里特别制作,因此它可能包含错误,但它的目的只是澄清问题消息.

无论如何在Java中正确地做到这一点?

java multidimensional-array

1
推荐指数
1
解决办法
107
查看次数

具有可以发送给free()的占位符char *的最有效方法是什么?

我正在开发一个程序,我们在竭尽所能地提高性能,现在我们进入了微优化阶段(同时避免了非严格必要的代码重复)。

想象一下这样的小代码:

propertyContent = gets_x_prop( propStruct );
propertyContent = ( propertyContent ? propertyContent : strdup("") );

/// ....
/// ....
/// ....

free(propertyContent)
Run Code Online (Sandbox Code Playgroud)

做出了决定,我们确定下一个要考虑攻击的是对空字符串strdup的许多调用。
请记住,我们需要有一个char*in变量,以简化随后出现的代码并使之更直接(避免引起的错误(void*)0

问题在于如何优化它……
到目前为止,我们只能实现一个自定义函数:

char* a = malloc(1);
a[0] = NULL;
Run Code Online (Sandbox Code Playgroud)

我们认为,这种方法应该有其他选择。我们还不希望将所有内容替换free()为执行NULL检查的宏,因为我们认为它对我们来说很难。

我们自己的测量表明,当前,等待时间最多的是在malloc中,例如strdup中发生的事件,其中一些会复制空字符串。

c micro-optimization

0
推荐指数
1
解决办法
96
查看次数