小编joz*_*yqk的帖子

Chrome坚持要保留陈旧/旧的javascript代码,不会重新加载最新版本

我正在做一些非常简单的web开发并使用chrome的调试器.当我修改源代码时,包含的javascript似乎永远不会更新.我可以删除整个文件的内容,它仍然加载陈旧的代码(除非我重新启动chrome).如果我删除了文件的权限,它会注意到并且不会加载页面,但是当替换权限时,旧代码又会返回.当通过http和本地文件直接获取时,会发生这种情况.没有任何垃圾邮件重新加载或ctrl-F5工作.我已经尝试清除并手动删除缓存,甚至在开发人员选项中设置了不缓存选项.我不认为chrome是在局部修改模式,但我永远不会告诉(这个"功能"是非常错误的,如果有时不太可取).我在firefox中没有这个问题,但特别想在此刻测试chrome.

谁看过这个吗?常见原因是什么?我该怎么做才能防止这种情况发生?

我正在使用google-chrome 31.0.1650.39-1运行fedora 18 - 并在注意到更新版本之后 - 32.0.1700.19-1.两者都有同样的问题.

javascript google-chrome

8
推荐指数
2
解决办法
4565
查看次数

检查命名管道/ FIFO是否打开以进行写入

我为其他进程写入了一个命名管道,并希望检查其他进程是否正确启动,但是不知道它的PID.上下文在屏幕上运行命令,确保命令正确启动.我希望这可行:

mkfifo /tmp/foo
echo hello > /tmp/foo &
lsof /tmp/foo
Run Code Online (Sandbox Code Playgroud)

可悲的是,lsof没有报道echo.inotifywait可能是另一个选项,但并不总是安装,我真的只想轮询一次,而不是阻止直到某个事件.

有没有办法检查命名管道是否打开写入?一般都开放吗?


更新:

一旦两端连接lsof似乎工作.这实际上解决了我的问题,但是为了这个问题,我有兴趣知道是否有可能在没有阅读器的情况下检测到命名管道的初始重定向.

> mkfifo /tmp/foo
> yes > /tmp/foo &
> lsof /tmp/foo
> cat /tmp/foo > /dev/null &
> lsof /tmp/foo
COMMAND   PID     USER   FD   TYPE DEVICE SIZE/OFF     NODE     NAME
yes     16915     user    1w  FIFO   8,18      0t0 16660270 /tmp/foo
cat     16950     user    3r  FIFO   8,18      0t0 16660270 /tmp/foo
Run Code Online (Sandbox Code Playgroud)

bash lsof named-pipes

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

动态注入SVG过滤器并应用于HTML

我正在玩将SVG过滤器应用于HTML.如果所有内容都是硬编码的,这可以工作,虽然我需要-webkit-filterchrome 的CSS id.当尝试使用javascript动态创建带有过滤器的SVG元素时,它会失败.有谁能解释为什么?

这是我到目前为止所拥有的:http://jsfiddle.net/H3UX8/1/

第一个图像和文本对在chrome和firefox上模糊,但第二对不是.

提取物不起作用:

.dynamic div {
    -webkit-filter: url('#f2');
    filter: url('#f2');
}

...

var svg = document.createElement("svg");
var filter = document.createElement("filter");
filter.setAttribute("id", "f2");
var blur = document.createElementNS("http://www.w3.org/2000/svg", "feGaussianBlur");
blur.setAttribute("stdDeviation", "5");
filter.appendChild(blur);
svg.appendChild(filter);
document.body.appendChild(svg);

...

<div class="dynamic">
    <div><img src="http://upload.wikimedia.org/wikipedia/en/2/24/Lenna.png" /></div>
    <div>HELLO WORLD TWO</div>
</div>
Run Code Online (Sandbox Code Playgroud)

html语法看起来完全相同.我猜测要么document.createElement不创建svg功能标签,要么过滤器ID只能在文档加载时读取一次.但是,我可以动态更改stdDeviation静态示例中的值.

html javascript css svg svg-filters

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

MutationObserver和当前/计算的CSS样式

我正在使用MutationObserver来查找添加到网页的图像.由于很多图像都是通过CSS background-image属性显示的,所以我除了查找img标签之外还要检查当前/计算的CSS样式,例如...

var hasBackgroundImage = function(node) {
    var nodeStyle = node.currentStyle || getComputedStyle(node, null);
    return (
        nodeStyle &&
        nodeStyle.backgroundImage &&
        nodeStyle.backgroundImage != "none"
        );
};
Run Code Online (Sandbox Code Playgroud)

但是,似乎在触发突变事件的节点与应用的CSS规则之间存在延迟,因此在突变事件期间似乎没有backgroundImage,即使稍后会出现这种情况.当代码在调试期间工作(使用断点踩踏)但在运行时不起作用时,我注意到了这一点.延迟变异事件处理setTimeout也有效,但要确定延迟需要非常大并且从页面到页面的变化(我不确定何时确保应用CSS规则).可能的原因可能只是延迟加载或注入CSS内容.

实现此功能的最佳方法是什么?我想我正在进行一种改变式的变异,但我怀疑这是否存在.

html javascript css mutation-observers

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

在后台执行进程,不打印"完成",并获取PID

这似乎是一件非常微不足道的事情,但我很困难.

要在后台执行某些操作,请使用&:

>>> sleep 5 &
[1] 21763
>>> #hit enter
[1]+  Done                    sleep 5
Run Code Online (Sandbox Code Playgroud)

但有一个.bashrc的来源背景脚本输出作业信息是非常令人沮丧的,所以你可以做这个来解决它:

>>> (sleep 5 &)
Run Code Online (Sandbox Code Playgroud)

好的,所以现在我想获得sleepfor wait或的PID kill.不幸的是它在子shell中运行所以典型的$!方法不起作用:

>>> echo $!
21763
>>> (sleep 5 &)
>>> echo $!
21763 #hasn't changed
Run Code Online (Sandbox Code Playgroud)

所以我想,也许我可以通过这种方式获得子shell来打印它的PID:

>>> sleep 5 & echo $!
[1] 21803 #annoying job-start message (stderr)
21803 #from the echo
Run Code Online (Sandbox Code Playgroud)

但是现在当我在子shell中抛出它时,无论我如何尝试捕获子shell的stdout,它似乎都会阻塞直到sleep完成.

>>> pid=$(sleep 5 & echo $!)
Run Code Online (Sandbox Code Playgroud)

如何在后台运行某些内容,获取其PID并停止打印作业信息和" Done"?

bash

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

Javascript文件未出现在chrome开发人员工具中

这种情况会定期发生,并持续数周.大多数时候一切都很好,但偶尔chrome不会显示JS文件.通过其他网址访问同一网站或以隐身方式查看可以解决此问题.重新启动服务器没有帮助.我很确定这是chrome的一个问题(v43.0.2357.134 v44.0.2403.107,仍然会发生).我正在使用django runserver,虽然不确定它是否相关,因为html很好,在w3c验证,我可以转到js URL并加载它.

在此输入图像描述

我甚至不确定如何开始调试这样的东西.这是铬的已知错误吗?也许某些标志/设置错了?


更新:

如果我在刷新时打开调试器,我就得不到js.否则没关系.

另一个更新:

这是我的文件结构:

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="test.js" ></script>
    </head>
    <body>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是javascript中的test.js.

alert("hi");
Run Code Online (Sandbox Code Playgroud)

当我在打开调试器的情况下刷新此页面(通过双击文件打开)时,alert不会运行并且js文件不会出现在"Sources"选项卡中.内联js时的行为相同.

javascript google-chrome

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

错误:变量或字段'myfunction'声明为void

在下面,我没有定义类型doesntexist.

void myfunction(doesntexist argument)
{
}
Run Code Online (Sandbox Code Playgroud)

GCC 4.7.2说" error: variable or field ‘myfunction’ declared void"

我的问题是:编译器在这里想要将函数名称称为void而不是参数类型?

[ 编辑 ]
在downvoting之前,请注意此问题的答案与错误的顺序有关,并且-Wfatal-errors停止打印更直接相关的消息.这不仅仅是我对一个略微模糊的编译器消息.

c c++ gcc compiler-errors

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

讨论小n的计算复杂性的正确方法

在讨论计算复杂性时,似乎每个人都会直接进入Big O.

让我们说例如我有一个混合算法,如合并排序,它使用插入排序较小的子阵列(我相信这称为平铺合并排序).它仍然最终与O(n log n)合并排序,但我想讨论小n的算法的行为/特征,在没有实际合并的情况下.

对于所有意图和目的,平铺合并排序插入排序,对我的小n的域执行完全相同的指令.然而,Big O处理大型和渐近的情况并且讨论小O的Big O几乎是矛盾的.在这种情况下,人们甚至认为"行为就像一个O(n ^ 2)算法",对我大吼大叫".在形式理论计算分析的背景下,在小n的情况下描述算法行为的正确方法是什么?为了澄清,不仅在n很小的情况下,而且在n从不大的情况下.

有人可能会说,对于这么小的n并不重要,但我对它的情况感兴趣,例如有一个很大的常数,例如被执行多次,并且在实践中它显示出明显的趋势并且是主导因素.例如,下图中显示的初始二次增长.我不是在解雇Big O,更多的是要求一种正确告诉双方故事的方法.

在此输入图像描述


[ 编辑 ]

如果对于"小n ",常数可以很容易地去除所有生长速率的痕迹

  1. 只讨论了渐近的情况,在这种情况下,与任何实际应用的关联性较小,或者
  2. 必须有一个阈值,我们同意n不再是"小".

那么n不是"小"的情况(n足够大,以至于增长率不会受到任何实际常数的显着影响),但还不足以显示最终的渐近增长率,因此只能看到子增长率(例如上图中的形状)?

是否没有表现出这种行为的实用算法?即使没有,理论上的讨论仍然是可能的.我们是否仅仅因为"应该做什么"来衡量而不是仅仅讨论理论?如果在所有实际案例中都观察到某种行为,为什么不存在有意义的理论呢?


让我转向另一个问题.我有一个显示分段超线性步骤的图表.听起来很多人会说"这是一个纯粹的巧合,它可以是任何可以想象的形状"(当然极端)并且如果它是一个正弦波而不会击打眼睑.我知道在很多情况下,形状可以被常数隐藏,但这里很明显.我怎样才能正式解释图形产生这种形状的原因?

我特别喜欢@Sneftel的话"不精确但有用的指导".

我知道Big O和渐近分析不适用.什么是?我能走多远?

在聊天中讨论

algorithm big-o computation-theory

6
推荐指数
2
解决办法
477
查看次数

获取除不可选元素之外的选定文本

我试图在文章中为选择的开始和结束获得字符偏移量.但是,我想在这个过程中忽略一些元素.

在我的应用程序中,服务器正在使用HTML之前JS动态注入一些元素,并且文本中的字符数在服务器和客户端之间保持一致非常重要.

我希望它会像window.getSelection()一起一样简单user-select: none;.遗憾的是,尽管文本看起来没有被选中,但它仍然包含在选择范围内.

我在下面写了一个简短的例子.我曾经写过一篇removeFromSelection没有太大成功的解决方法.也许我需要删除重叠的范围,.unselectable并用全新的范围对象手动填补空白.我觉得这应该比我做的更容易.我应该怎么做?

function findAncestorOffset(container, node, offset)
{
	if (node == container)
		return offset;
	var parent = node.parentNode;
	var syblings = parent.childNodes;
	for (var i = 0, len = syblings.length; i < len; i++)
	{
		if (syblings[i] == node)
			break;
		offset += $(syblings[i]).text().length;
	}
	return findAncestorOffset(container, parent, offset);
}

function removeFromSelection(selector, selection)
{
	$(selector).each(function(i, node){
		var range = document.createRange();
		range.selectNodeContents(node);
		selection.removeAllRanges(range);
	});
}

var onSelect = function(){
  var sel = …
Run Code Online (Sandbox Code Playgroud)

html javascript css jquery selection

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

ssh - 错误的配置选项:KeyAlgorithms

我已经启动了 gerrit 服务器。当我尝试 ssh 到它时,我得到:

Unable to negotiate with 127.0.0.1 port 29418: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
Run Code Online (Sandbox Code Playgroud)

由于此功能已被弃用,因此需要手动启用(http://www.openssh.com/legacy.html):

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 username@localhost -p 29418
Run Code Online (Sandbox Code Playgroud)

这很好用。现在我想要git clone,但需要KexAlgorithms通过 git 将选项传递给 ssh。一种解决方案是将选项添加到~/.ssh/config. 这是我添加的:

Host localhost
    KeyAlgorithms +diffie-hellman-group1-sha1
Run Code Online (Sandbox Code Playgroud)

问题是我收到以下错误:

/home/username/.ssh/config: line 6: Bad configuration option: keyalgorithms
Run Code Online (Sandbox Code Playgroud)

有一个HostKeyAlgorithms选项可以在那里工作,但会抱怨Bad key types '+diffie-hellman-group1-sha1'。我应该如何配置git/ssh连接到gerrit?

git ssh gerrit

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