fs.readFileSync似乎比fs.readFile更快 – 是否可以用于生产中的Web应用程序?

我知道在node中开发的时候,应该尽量避免使用asynchronous函数,但是我稍微testing一下,看看它们是如何比较的。 我需要打开一个包含i18n数据(如date和时间格式等)的json文件,并将这些数据传递给使用这些数据格式化数据的类。 开始将所有类的方法包装在callback函数中会有些尴尬,所以如果可能的话,我会使用同步版本。 console.time('one'); console.time('two'); fs.readFile( this.dir + "/" + locale + ".json", function (err, data) { if (err) cb( err ); console.timeEnd('one'); }); var data = fs.readFileSync( this.dir + "/" + locale + ".json" ); console.timeEnd('two'); 这会导致我的控制台中有以下几行: two: 1ms one: 159ms 似乎fs.readFileSync大约比fs.readFile快150倍,大约需要1ms来加载一个50KB的json文件(缩小)。 我所有的json文件都在50-100KB左右。 我也想也许以某种方式记忆或保存这个JSON数据会话,以便该文件是只读一次会话(或当用户更改其语言环境)。 我不完全确定如何做,这只是一个想法。 在我的情况下可以使用fs.readFileSync还是会在以后遇到麻烦?

如果数据库大小大于2千兆字节,SQLite性能会降低吗?

去年,当我在他们的网站上查询SQLite时,build议的SQLite数据库大小是2千兆字节。 但现在,我再也找不到这个build议了。 那么有没有人试图使用最新版本的大于2GB的SQLite数据库呢? SQLiteperformance如何? PS:我想制作一个移动应用程序,需要在本地工作的大数据库(例如存储维基百科文章)。

如何实施移动设备的滑动手势?

我有一个AngularJS应用程序,它有箭头键导航来切换视图。 我想要使​​用滑动触摸设备来实现此导航。 我试过jGestures库,但它不适合刷卡。 我一直build议不要使用jQuery的手机 。 有没有其他的方式来实施刷卡? 编辑:它不会检测到滑动干净。 我在包括iPad在内的多种设备上进行了testing,并且需要多次滑动才能执行操作(在我的情况下为路由)。

在MVC脚本包中使用CDN。 我错过了什么?

我正在尝试使用CDN加载jQuery。 我已阅读这篇文章,这似乎应该是非常简单的。 我的脚本包定义如下。 bundles.UseCdn = true; bundles.Add(new ScriptBundle("~/bundles/jquery", "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js").Include( "~/Scripts/jquery-{version}.js")); 我将其包含在页面上如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width" /> <title>@ViewBag.Title</title> @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr") </head> <body> @RenderBody() @Scripts.Render("~/bundles/jquery") @RenderSection("scripts", required: false) </body> </html> 但是当我看着萤火虫似乎jquery正在从本地主机加载。 我已经尝试使用realease和debug builds /。 我错过了什么? 我认为这应该是相当简单的。 谢谢。

Win32Exception(0x80004005):等待操作超时

我正在运行一个ASP.NET Web Pages页面,它在初始化负载时从SQL服务器中抽取一个项目列表。 这个查询运行在一秒钟左右,并在2秒内加载页面。 回报大概是1000条logging, 我从Service Manager SQL数据库中提取主机名以及一些其他信息。 在这个页面中,我有一个内置的search,本质上运行完全相同的查询,但是使用基于主机名的LIKE运行它。 这将加载与包含部分search查询的所有主机名相同的页面。 查询一般在SQLpipe理工作室内运行一秒钟,但加载页面需要相当长的时间,有时会超时。 我的问题是,为什么基于参数的search需要更长的时间,有时超时没有明显的原因。 是否有任何措施可以缓解这种超时? 以下是完整的错误。 “/”应用程序中的服务器错误。 The wait operation timed out 说明:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪,了解有关错误的更多信息以及源代码的位置。 exception详情: System.ComponentModel.Win32Exception: The wait operation timed out Source Error: Line 13: } Line 14: Line 15: var selectedData = db.Query(selectCommand, searchTerm); Line 16: Line 17: Source File: c:\Users\u0149920\Documents\My Web Sites\AppSupport\servers\default.cshtml Line: 15 堆栈跟踪: […]

Highcharts – 关于完整图表宽度的问题

我正在使用Highcharts柱形图,我希望它是100%宽度响应图表。 容器是一个简单的<div> ,没有任何格式。 加载文档时,图表总是固定宽度600x400px大小。 如果我调整窗口大小或切换到另一个浏览器选项卡,图表将填充宽度并变成响应式全宽度图表,就像我想要的一样。 如果我重新加载页面,它又是固定的宽度。 我试图设置宽度容器和图表,但是,没有任何帮助。 如果我把容器div移到父div上面一层,它就起作用了。 如何使图表成为页面加载全宽还? 谢谢

观看根目镜的变化

我试图绑定到rootcope,以便在用户login时可以在不同的服务器上设置状态。 这是我的模块。 angular.module('presence', [ ] ) .run(function ($rootScope) { $rootScope.$watch($rootScope.currentUser, function () { console.log('change currentUser') console.log($rootScope.currentUser) presence.setGlobal({ u: $rootScope.currentUser, s: 'on' }) }) }) 没有控制器,因为它只是关于用户的全球存在,而与DOM无关。 这不工作,手表运行一次,但从来没有再次在随后的变化。 谢谢你的帮助。 编辑:login代码如下所示: $scope.login = function() { $http.post('http://localhost:3000/login', $scope.user).success(function(res, status) { if (res && res._id) { $rootScope.currentUser = res } }).error(function(res, status) { $scope.error = res.err }); }; 此代码在DOM中更新正常。 它在html中显示用户名,例如: […]

从DataReader对象中查找Field的数据types

我有以下查询: SqlCommand cmd = new SqlCommand("Select employee_id, lastname, firstname from Employees", conn); //Execute reader SqlDataReader reader = cmd.ExecuteReader(); 使用sqlDatareader,我只想知道数据types字段: 假设我想知道字段employee_id的数据types如何知道使用readervariables? 谢谢

如何在express.js中获取发起请求的域名?

我正在使用express.js,我需要知道发起呼叫的域名。 这是简单的代码 app.get( '/verify_license_key.json', function( req, res ) { // do something 如何从req或res对象获取域名? 我的意思是我需要知道,如果API是由somesite.com或someothersite.com。 我试图做一个控制台req和res的console.dir,但我不知道从那里,也阅读文档,但它没有给我任何帮助。

IE不debugging时,空引用指针被传递给存根

在VS2012中,我的web项目像往常一样debugging得很好。 我使用IIS Express。 今天,我安装了VS 2013,当我按F5debugging时,我得到了 我无法在任何地方find解决scheme。 我尝试清理临时文件,将端口号从7227更改为其他内容,删除iis快速configuration文件等。我甚至卸载并重新安装VS 2013。 我可以运行没有debugging,然后附加到IISExpress和工作,但我不能开始与F5。 任何线索? 编辑:发生在另一台机器以及全新安装的Windows 8.1和VS 2013 编辑:解决scheme:我有Silverlight检查debugging器。 我取消了Silverlight的检查,并且可以使用F5使用Chrome或Firefox进行debugging。 显然有些东西不对,但我不需要Silverlightdebugging。