我一直在阅读Sedgewick和Wayne的"Algorithms,4th Ed",并且我一直在实现JavaScript中讨论的算法.
我最近采用了书中提供的mergesort示例来比较自上而下和自下而上的方法......但我发现自下而上的运行速度更快(我认为).在我的博客上查看我的分析.- http://www.akawebdesign.com/2012/04/13/javascript-mergesort-top-down-vs-bottom-up/
我还没有找到任何讨论说一个mergesort方法应该比另一个快.我的实施(或分析)是否存在缺陷?
注意:我的分析测量算法的迭代循环,而不是严格的数组比较/移动.也许这有缺陷或无关紧要?
编辑:我的分析实际上没有时间速度,所以我关于它运行"更快"的声明有点误导.我通过递归方法(自上而下)和for循环(自下而上)跟踪"迭代" - 并且自下而上似乎使用更少的迭代.
我有一个运行Express的应用程序,我正在尝试使用电子分发它.
在调试中运行电子:
/path/to/electron/Electron.app/Contents/MacOS/Electron path-to-my-app
Run Code Online (Sandbox Code Playgroud)
我的应用运行完美.Express启动它的服务器,一切正常 - 主窗口正确打开使用mainWindow.loadUrl('http://localhost:3000/');
当我按照分发教程(之前链接)时,我将我的应用程序资源复制到:
/path/to/electron/Electron.app/Contents/Resources/app
Run Code Online (Sandbox Code Playgroud)
但是现在当我运行Electron.app时,我会Cannot GET /在主窗口看到......但我不明白为什么.
有任何想法吗?
我唯一的想法是process.cwd()没有正确帮助我在这里定义文档根目录:
//configure Express to default web requests to /workspace/ folder
expressApp.use(express.static(process.cwd() + '/workspace'));
Run Code Online (Sandbox Code Playgroud)
但如果是这样的话,我不知道如何绕过它.
用例
我有一个使用WinForms在C#中开发的现有项目以及GUI的自定义控件.我们对使用HTML/CSS/JS编写GUI的方法感到惊讶,我们正在寻找使用上述语言为桌面应用程序编写GUI的最佳方法.我们只需要支持Windows设备.
我担心:
使用电子边缘的建议不需要很长时间.虽然我并不担心让一切正常,但我担心:
我的选择:
我仍然乐观,我想用HTML/CSS/JS编写我的桌面GUI.我考虑的不是使用电子边缘就是编写一个自己的电子应用程序,它使用命名管道与我的C#后端进行通信.我想知道是否有更大的障碍,为什么我不想这样做并使用电子边缘呢?
我的问题:
我想得到上面提到的两个问题的反馈,我也希望得到关于我创建GUI作为自己的电子过程的选项的输入,以便当有人运行我的应用程序时我有两个进程(GUI +后端).
多年来,Web开发人员一直遵循最小化HTTP连接的逻辑,因为浏览器不会阻塞代码的下载/执行.例如,雅虎长期以来一直在吹捧他们的最佳实践,并告诉我们将CSS/JavaScript /图像资源组合到单个文件中 - 从而减少HTTP请求的总数并压缩总资源大小.
但是在增加网页速度方面存在其他"最佳实践" - 特别是最大化并行HTTP下载数量(来自Google).这种方法告诉我们,通过在多个主机名之间传播HTTP连接,浏览器可以同时执行更多操作.
因此,随着现代Web应用程序变得非常庞大(例如仅3MB +的JavaScript),必须提出这样的问题:
我的应用程序在单个文件中使用3MB + JavaScript加载会更快吗?或者,如果多个较小的文件分布在主机名中,它会加载得更快吗?
为了简单起见,我们还应该假设遵循其他"最佳实践",因此这个问题最好存在于真空中.
我还没有看到关于这个主题的任何实证数据,但我想必须有一个点,这些方法的表现有所不同 - 所以知道哪个甜点存在将是理想的.
我有一台为其localhost运行IIS7的Windows Vista笔记本电脑.在这台机器上,我可以成功导航到:
但是,我无法从同一网络上的另一台计算机访问此localhost网站.理想情况下,我可以访问"http:// mycpuname"(这样我就可以对连接进行硬编码),但此时我可能会考虑机器的IP地址(http://192.000.000.xyz )
我在这里和互联网上的其他地方看过类似的问题...但是这些帖子似乎都没有为我解决这个问题.
我尝试过的事情: - 向Windows防火墙添加例外以允许TCP端口80和8080 - 完全禁用Windows防火墙 - 在此帖子中运行"netsh"命令
此外,我通过命令提示符运行"ipconfig"来查看Windows笔记本电脑上的IP地址.奇怪的是,尝试从Windows笔记本电脑访问"http://192.000.000.xyz"似乎不起作用......
我也尝试重新启动IIS并重新启动我的机器.
救命?
有没有一种简单的方法可以使用 JavaScript 正则表达式来匹配 BOM?我想构建一个在 Node.js 中执行此操作的实用程序,但以下内容似乎与任何内容都不匹配:
fixBomFiles : function(offendingFiles) {
var i = 0,
file, js;
for (i=0; i < offendingFiles.length; i++) {
file = offendingFiles[i];
js = this.parent.fs.readFileSync(file, 'utf8');
js = js.replace(/\uFEFF/g, '');
this.parent.fs.writeFileSync(file, js, 'utf8');
}
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我猜我的正则表达式不好,或者我不应该使用 UTF-8 编码进行读/写。
我正在看TODO MVC AngularJS示例,我看到应用程序被定义为一个模块.
var todomvc = angular.module('todomvc', []);
Run Code Online (Sandbox Code Playgroud)
在控制器内部,我看到它们被定义为:
todomvc.controller('TodoCtrl', function TodoCtrl($scope, $location, todoStorage, filterFilter) {
//...
});
Run Code Online (Sandbox Code Playgroud)
我的问题涉及单元测试......如何为该类编写单元测试?
我尝试过这样的事情:
describe('TodoCtrl', function () {
var controller;
beforeEach(function () {
controller = todomvc.TodoCtrl;
});
afterEach(function() {
controller = null;
});
describe('addTodo() method', function() {
console.log(controller)
it('should do something', function () {
expect(typeof controller.addTodo).toBe(true); //should fail
});
});
});
Run Code Online (Sandbox Code Playgroud)
...但是"控制器"最终变为空或未定义.
我是否需要修改TODO MVC应用程序,以便传递给todomvc.controller()的函数不是匿名的?
任何方向都会受到赞赏,因为我对Angular很新.
我维护 NPM 包 LintRoller: - https://npmjs.org/package/lintroller
最近我尝试推送一个新版本,但出现以下错误:
npm ERR! publish Failed PUT response undefined
npm ERR! Error: login error
npm ERR! at RegClient.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-registry-client/lib/request.js:82:22)
npm ERR! at CouchLogin.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/couch-login/couch-login.js:177:14) n## Heading ##pm ERR! at CouchLogin.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/couch-login/couch-login.js:159:46)
npm ERR! at Request.self.callback (/usr/local/lib/node_modules/npm/node_modules/request/request.js:129:22)
npm ERR! at Request.EventEmitter.emit (events.js:98:17)
npm ERR! at Request.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/request/request.js:873:14)
npm ERR! at Request.EventEmitter.emit (events.js:117:20)
npm ERR! at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/request/request.js:824:12)
npm ERR! at IncomingMessage.EventEmitter.emit (events.js:117:20)
npm ERR! at _stream_readable.js:920:16
npm ERR! If you need help, you may report this …Run Code Online (Sandbox Code Playgroud) 在我的nwjs应用程序中,我从HTML文件加载_launch.js文件:
<html>
<body>
<script type="text/javascript" src="_launch.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在我的_launch.js文件中,我启动了快速服务器和socketIO所需的Node进程.
var express = require('express'),
app = express(),
server = require('http').Server(app),
io = require('socket.io')(server),
gui = require('nw.gui'),
__curDir = process.cwd(),
//keep the logic for the IO connections separate
ioServer = require(__curDir + '/server.js');
//configure Express to default web requests to /workspace/ folder
app.use(express.static(__curDir + '/workspace'));
ioServer.init(io, console);
server.listen(3000, function () {
console.log('HTTP server listening on *:3000');
window.location = 'http://localhost:3000/MyApp/';
});
Run Code Online (Sandbox Code Playgroud)
该应用程序启动很好,我的快递/ socketIO连接都完美的工作.
但是当我的终端中出现server.listen()回调中的console.log()时,我尝试从server.js文件(之前需要)记录的任何消息都不会出现在任何地方.
有什么想法吗? …
我正在尝试在页面上实现一个工具栏,其中包含三个ToolbarGroup组件:
<Toolbar>
<ToolbarGroup firstChild={true} float="left">
{prevButton}
</ToolbarGroup>
<ToolbarGroup>
{releaseBtn}
</ToolbarGroup>
<ToolbarGroup lastChild={true} float="right">
{nextButton}
</ToolbarGroup>
</Toolbar>
Run Code Online (Sandbox Code Playgroud)
一般的想法是prevButton应该一直渲染到工具栏的左侧(确实如此),nextButton应该一直渲染到右侧(确实如此)......并且releaseBtn应该以工具栏为中心(当前没有发生)。
根据material-ui文档,似乎没有一些简单的设置centered={true}——我怎样才能做到这一点?
我尝试过手动将中间的样式设置ToolbarGroup为margin: 0px auto,但这似乎没有帮助。
javascript ×8
node.js ×5
electron ×2
algorithm ×1
angularjs ×1
c# ×1
express ×1
iis-7 ×1
ipc ×1
jasmine ×1
material-ui ×1
mergesort ×1
networking ×1
node-webkit ×1
npm ×1
nw.js ×1
performance ×1
reactjs ×1
regex ×1
sorting ×1