好的,我可以使用OrderedDict了json.dump
.也就是说,OrderedDict可以用作JSON的输入.
但它可以用作输出吗?如果是这样的话?在我的情况下,我想load
进入OrderedDict,这样我就可以保持文件中键的顺序.
如果没有,是否有某种解决方法?
我和队友讨论过锁定.NET.他是一个非常聪明的人,在低级和高级编程方面拥有广泛的背景,但他在低级编程方面的经验远远超过我的.无论如何,他认为,如果可能的话,应该避免在预期会处于重负载的关键系统上进行.NET锁定,以避免"僵尸线程"崩溃系统的可能性很小.我经常使用锁定而且我不知道什么是"僵尸线程",所以我问道.我从他的解释中得到的印象是僵尸线程是一个已经终止但仍然保留在某些资源上的线程.他给出了僵尸线程如何破坏系统的一个例子是一个线程在锁定某个对象后开始一些程序,然后在某个时刻终止锁定才能被释放.这种情况有可能使系统崩溃,因为最终,尝试执行该方法将导致所有线程都在等待访问永远不会返回的对象,因为使用锁定对象的线程已经死亡.
我想我得到了这个的要点,但如果我离开基地,请告诉我.这个概念对我来说很有意义.我并不完全相信这是一个可能在.NET中发生的真实场景.我以前从未听说过"僵尸",但我确实认识到,在较低级别深入工作的程序员往往对计算基础(如线程)有更深入的了解.我肯定看到了锁定的价值,然而,我看到许多世界级程序员利用锁定.我也很有能力为自己评估这个,因为我知道这lock(obj)
句话实际上只是语法糖:
bool lockWasTaken = false;
var temp = obj;
try { Monitor.Enter(temp, ref lockWasTaken); { body } }
finally { if (lockWasTaken) Monitor.Exit(temp); }
Run Code Online (Sandbox Code Playgroud)
因为Monitor.Enter
并且Monitor.Exit
被标记了extern
.似乎可以想象.NET会做某种处理来保护线程免受可能产生这种影响的系统组件的影响,但这纯粹是推测性的,可能只是基于我从未听说过"僵尸线程"的事实.之前.所以,我希望我能在这里得到一些反馈:
两年多前我问过这个问题.今天发生这种事:
我想在Linux机器上创建接近100%的负载.它是四核系统,我希望所有内核全速运行.理想情况下,CPU负载将持续指定的时间,然后停止.我希望在bash中有一些技巧.我在想某种无限循环.
我的项目中存有一个存储在Resources/myimage.jpg中的图像.如何将此图像动态加载到Bitmap对象中?
我正在尝试构建一个适用于任何地方的视频播放器.到目前为止我要去:
<video>
<source src="video.mp4"></source>
<source src="video.ogv"></source>
<object data="flowplayer.swf" type="application/x-shockwave-flash">
<param name="movie" value="flowplayer.swf" />
<param name="flashvars" value='config={"clip":"video.mp4"}' />
</object>
</video>
Run Code Online (Sandbox Code Playgroud)
(如在几个网站上看到的,例如每个人的视频)到目前为止,非常好.
但现在我也想要一些播放列表/菜单以及视频播放器,我可以从中选择其他视频.那些应该马上在我的播放器中打开.所以我将不得不"动态改变视频的来源"(见dev.opera.com/articles/everything-you-need-to-know-html5-video-audio/ - section"让我们来看看另一部电影")用javascript.让我们暂时忘记flashplayer(以及IE)部分,我将稍后尝试处理.
所以我的JS改变<source>
标签应该是这样的:
<script>
function loadAnotherVideo() {
var video = document.getElementsByTagName('video')[0];
var sources = video.getElementsByTagName('source');
sources[0].src = 'video2.mp4';
sources[1].src = 'video2.ogv';
video.load();
}
</script>
Run Code Online (Sandbox Code Playgroud)
问题是,这在所有浏览器中都不起作用.即,firefox = O有一个很好的页面,你可以在那里观察我遇到的问题:http://www.w3.org/2010/05/video/mediaevents.html
一旦我触发load()方法(在Firefox中,请注意),视频播放器就会死机.
现在我发现当我不使用多个<source>
标签,而只是标签中的一个src属性时<video>
,整个事情都可以在firefox中运行.
所以我的计划是使用该src属性并使用canPlayType()函数确定适当的文件.
我是以某种方式做错了还是让事情变得复杂?
任何人都可以让我如何让硒等到页面完全加载的时候?我想要一些通用的东西,我知道我可以配置WebDriverWait并调用类似'find'的东西让它等待,但我不会那么远.我只需要测试页面加载成功并转到下一页进行测试.
我在.net中找到了一些东西但是无法在java中使用它...
IWait<IWebDriver> wait = new OpenQA.Selenium.Support.UI.WebDriverWait(driver, TimeSpan.FromSeconds(30.00));
wait.Until(driver1 => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete"));
Run Code Online (Sandbox Code Playgroud)
有人想过吗?
是否存在任何用于浏览器内javascript的库,它们提供与Node相同的灵活性/模块性/易用性require
?
提供更多细节:原因require
很好,它是:
jQuery.ajax()
var dsp = require("dsp.js");
我将能够访问dsp.FFT
,这不会干扰我的本地var FFT
我还没有找到一个能够有效地完成这项工作的库.我倾向于使用的解决方法是:
coffeescript-concat - 它很容易需要其他js,但你必须编译它,这意味着它不太适合快速开发(例如构建API in-test)
RequireJS - 它是流行的,直截了当的,并解决了1-3,但缺乏范围是一个真正的交易破坏者(我相信head.js是相似的,因为它缺乏范围,虽然我从来没有任何机会使用它.类似地,LABjs可以加载并.wait()
确实缓解依赖性问题,但它仍然没有确定范围)
据我所知,似乎有许多解决方案用于javascript的动态和/或异步加载,但它们往往具有与从HTML加载js相同的范围问题.最重要的是,我想要一种加载不会污染全局命名空间的javascript的方法,但仍允许我加载和使用库(就像节点的要求一样).
编辑(我的答案):自写这篇文章以来,我已广泛使用RequireJS(现在有更清晰的文档).在我看来,RequireJS确实是正确的选择.我想澄清一下系统如何适用于那些和我一样困惑的人:
您可以require
在日常开发中使用.模块可以是函数返回的任何内容(通常是对象或函数),并且作为参数确定范围.您还可以将项目编译为单个文件以进行部署r.js
(实际上,这几乎总是更快,即使require
可以并行加载脚本).
RequireJS和node-style之间的主要区别就像browserify(由tjameson建议的一个很酷的项目)使用的是模块的设计和要求:
require
获取要加载的模块(javascript文件)列表和回调函数.当它加载了每个模块时,它会调用每个模块的回调作为回调的参数.因此,它是真正的异步,因此非常适合网络.require
是一个阻塞调用,它加载模块并将其作为对象返回.这适用于Node,因为文件从文件系统读取,这足够快,但在Web上运行不佳,因为同步加载文件可能需要更长的时间.实际上,许多开发人员在看到AMD之前都使用过Node(因此也使用了CommonJS).此外,许多库/模块是为CommonJS编写的(通过向exports
对象添加内容)而不是为AMD 编写(通过从define
函数返回模块).因此,许多支持Node的Web开发人员希望在Web上使用CommonJS库.这是可能的,因为从<script>
标签加载是阻塞的.像browserify这样的解决方案采用CommonJS(Node)模块并将它们包装起来,以便您可以将它们包含在脚本标记中.
因此,如果您正在为Web开发自己的多文件项目,我强烈推荐RequireJS,因为它确实是Web的模块系统(尽管在公平披露中,我发现AMD比CommonJS更自然).最近,区别变得不那么重要了,因为RequireJS现在允许您基本上使用CommonJS语法.另外,RequireJS可用于在Node中加载AMD模块(虽然我更喜欢node-amd-loader).
如何使用书签加载外部JavaScript文件?这将克服IE的URL长度限制,并通常保持清洁.
我想在这里做一个非常简单的任务,我希望能够点击页面上的一个按钮,让它带我到另一个页面.我已经尝试过window.location.href,以及其他一些东西,它什么也没做.我尝试过不同的平台和不同的浏览器,都有相同的结果.
我知道它可以调用一个函数,但我只是无法加载新页面.此外,这一切都在我的本地文件系统中,并且两个页面都处于同一级别(但我也尝试加载外部页面,如www.apple.com).
有什么想法吗?
谢谢Patrick