草庐IT

美团$方案$实践

全部标签

javascript - JS setTimeout() 替代方案

就像我解释的那样here,我不能再使用window.setTimeout()和任何窗口经典函数,如clearInterval等...);但我需要将JSblock代码作为异步代码调用。这就是我使用XHR请求的原因。使用XHR实现window.setTimeout()的智能替代方案的最佳方法是什么?//Notworking:(setTimeout(function(){document.getElementById("messageTimer").innerHTML="HappyNewYear!(oldversion)";},10);//withorwithoutjQuery-butXHR

javascript - 在浏览器中压缩音频的解决方案?

我正在努力将音频直接记录在浏览器中并发布到网络服务器。我目前依靠flash访问用户麦克风(使用从https://code.google.com/p/wami-recorder/派生的代码)并将记录的Wav/pcmblob从flash传递到JS以进行上传(使用XHRpost)。这工作正常,但我试图避免发送未压缩的WAV数据(我可以在服务器上压缩音频,但我试图限制那里的CPU密集型工作)。到目前为止,我发现在客户端压缩到ogg的选项包括:利用flash的lab特性将音频压缩成ogg(labs.byhook.com/2011/02/15/ogg-vorbis-encoder-for-flas

javascript - 带水线的 Sailsjs 地理空间解决方案

似乎Sailsjs/Waterline当前不支持POINT类型或使用JSON的地理空间索引。是否有任何方法可以为某些适配器自定义架构以支持地理空间数据类型?如果没有,是否有办法将第二个ORM集成到Waterline中? 最佳答案 在Sails.js中,您需要MongoDB(npminstall--savesails-mongo)进行地理空间索引,另外您需要确保在config/bootstrap.js中创建2dindex(确保替换模型名称和属性名称满足您的特殊需求):module.exports.bootstrap=function(

javascript - 最佳实践 : reuse components or write duplicates

我正在使用React、alt和immutable进行商店管理。我的报价对象大致如下所示:offer:{groups:[{articles:[{optionGroups:[{options:[]}]}]}]}我遍历每个条目并显示一个表单来编辑组、文章...。如果发生更改,我调用OfferAction并将路径、更改的字段和新值传递给实体,例如OfferActions.update([2,'articles',5,'optionGroups'],'name','MyOptionGroup')现在我想显示完全相同的表单,但具有不同的占位符和更改处理程序。如果填写了表单,则应创建实体(必须调用不

javascript - 日志记录会要求单独的良好实践还是杂乱无章?

我正在开发一个API,它会进行大量调用,其中一些由于各种原因需要彻底记录。目前,我记录了函数中发生的所有输入/输出/处理,并且API运行完美,因此似乎没有必要增加日志记录量。但一个让我印象深刻的想法是为每个传入的API调用分配一个UUID,这将遵循内部函数中的日志记录。虽然它会在每个函数中创建大量附加参数来跟随UUID,但我想知道这是否是常见做法,我是否应该在需要出现之前实现它,而要做的更改量是易于管理。例如:显然真正的代码要复杂得多,并且不使用console.log进行日志记录constexpress=require('express'),fs=require('fs'),confi

javascript - 与 HTMLElement 对象进行数据关联的最佳实践?

我遇到了3种使用HTMLElement对象存储任何数据的方法。有人可以建议将任何数据与元素对象相关联的最佳做法吗?我更喜欢数字3,因为它不像1和2那样设置任何HTML属性。这就像在对象上设置和获取任何属性。使用setAttribute('nonStandardDataProperty')使用HTMLElement对象的数据集属性,例如dataset.x数据x属性HTMLElement是对象,因此定义任何属性,它将用作该元素的数据存储 最佳答案 在我看来,选项#2是最“符合标准”的,如果这是您正在寻找的;另外,它允许您从HTML中设置

javascript - Gulpfile.js 观看最佳实践

这是我当前的gulpfile.js监视列表//Gulpwatchlistgulp.task('watch',['browserSync','sass'],function(){gulp.watch('app/scss/**/*.scss',['sass']);gulp.watch('app/*.html').on('change',browserSync.reload);gulp.watch('app/js/**/*.js').on('change',browserSync.reload);//addmorewatchershere});这行得通。但我正在学习的教程略有不同:gulp.

javascript - 从发布的 JavaScript 中删除 console.log 和其他调试代码的最佳实践?

我见过一些控制台包装器可以在带有控制台的浏览器中停止错误,而更高级的包装器可以在旧浏览器中启用日志记录。但我没有看到任何帮助打开和关闭调试代码的东西。目前我执行查找和替换以注释掉调试代码。一定有更好的方法吗?我正在使用Combres,它使用YUI来缩小JavaScript。我看过一些帖子提到使用双分号来标记要在缩小过程中删除的行。这是技巧还是好的做法? 最佳答案 也许您应该在console.log()周围有自己的包装器,并通过该包装器记录您的调试信息。这样,一旦部署到生产环境,您就可以用一个空函数替换该单个函数,这样控制台就不会充斥

javascript - $timeout 仍然是等待 Angular 指令模板的最佳实践吗?

我们团队等待指令模板呈现的设计模式是将我们的DOM操作代码包装在$timeout中(在指令的链接函数内),我曾经知道这是正常的设计模式。这仍然是正确的,还是有更好/更安全的设计模式来做到这一点?模式示例在ECMAScript6中:link:($scope,$element)=>{$timeout(()=>{vardomElementFromTemplate=$element.find('myDOMElement');}} 最佳答案 当您尝试选择DOM中可用的元素时:IMO从来都不是最佳实践,因为不需要为同步dom选择函数创建异步行为

javascript - 寻找用于在客户端生成 pdf 的解决方案(angular js)

我正在寻找使用AngularJs从(html+css+javascript)生成pdf的解决方案。我测试了两种解决方案:jsPDF(不带css)虾(基于Ruby)这对我不起作用。我该怎么做? 最佳答案 毕竟,我发现了优秀的PhantomJS.二进制文件很容易安装在服务器上,不需要额外的依赖项,并且附带了大量示例代码,包括开箱即用的“打印到PDF”功能。通过一些小的调整,我们为我们的用例定制了脚本,并在几分钟内获得了我们网页的PDF副本。PhantomJS自2011年以来一直存在,并被各种开源产品使用,列在他们的网站上