我是Backbone.js的新手,我正试图找出状态变量应该存在的位置.我的用例:
我有一个应用程序,为一本书提供阅读界面(我知道,经典的例子,对吧?).我的模型是Book和Page每个的集合类.应用程序的结构看起来大致如此(原谅ASCII visio):
+------------+
| Controller |
+------------+
| Views Models
| +--------------+ +----------------+
|-| IndexView |------| BookCollection |
| +--------------+ +----------------+
| |
| +--------------+ +----------------+
+-| BookView |------| Book |
+--------------+ +----------------+
| |
| +--------------+ |
|-| TitleView |-+ |
| +--------------+ | +----------------+
| +-| Page |
| +--------------+ | +----------------+
+-| PageView |-+
+--------------+
Run Code Online (Sandbox Code Playgroud)
也就是说,Controller实例化和协调两种观点,IndexView并BookView通过模型的支持.该BookView实例化和协调一组子视图(实际上有比这里更所示).
国家信息包括:
目前,如果propType验证失败,ReactJS将console.warn用于发出警告.我真的非常希望在开发模式下出现真正的错误,因此它可能会使我们的持续集成构建失败,而不仅仅是打印可能在shuffle中丢失的消息.
已经讨论过这个问题,例如在此功能请求中,此相关问题描述了当前的行为.那没关系,但我个人希望它抛出一个错误.
假设ReactJS不会很快为此提供更好的支持,那么最好的解决方法是什么?到目前为止,我提出的最好的方法是覆盖console.warn测试,例如
console.warn = function(msg) {
throw new Error(msg);
};
Run Code Online (Sandbox Code Playgroud)
这样做的缺点是,在测试中实现起来可能很棘手,并且它不是特定于React的,因此console.warn还需要处理其他调用.
tl; dr:当我的所有文本依赖项都被内联时,如何将text.js插件保留在优化文件之外?
我正在使用Require.js优化器(通过Node)来优化项目中的一些JS文件.我正在使用文本插件来加载文本依赖项(HTML模板,CSS).我有一个我想要优化的模块,包括它的依赖项,如下所示:
define(['text!core/core.css'], function(styles) {
// do setup stuff, return an object
});
Run Code Online (Sandbox Code Playgroud)
Require.js文档说core/core.css我运行r.js优化器时会内联文件,我正在这样调用:
$ r.js -o baseUrl=./src name=core out=release/test.js
Tracing dependencies for: core
Uglifying file: c:/path/release/test.js
c:/path/release/test.js
----------------
c:/path/src/text.js
text!core/core.css
c:/path/src/core.js
Run Code Online (Sandbox Code Playgroud)
好消息是,这很有效.当我查看优化文件时,我可以看到内联文本,如下所示:
define("text!core/core.css",[],function(){return"some CSS text"}),
define("core",["text!core/core.css"],function(a){ ... })
Run Code Online (Sandbox Code Playgroud)
坏消息是,text.js插件也包含在内 - 它增加了大约3K,并且包含(据我所知)现在完全不必要的代码来加载外部文本文件.我知道3K并不多,但我正在努力保持我的代码高度优化,据我所知,如果我的文本依赖项被内联,那么文本插件的代码根本不是必需的.我可以通过添加exclude=text到我的r.js调用来保持文本插件,但如果我这样做,当我尝试在浏览器中使用优化代码时,我会收到错误,说明无法加载text.js插件.
所以:
有没有理由在这里实际需要 text.js插件?
如果没有,是否有一个配置选项的r.js,可以解决此行为,或
是否有一个简单的shim为text.js插件,我可以包括说服Require.js加载不必要的插件?
我正在编写一个Web应用程序,它采用用户提交的图像,通过canvas元素获取像素数据,进行一些处理,然后使用矢量形状(使用Protovis)渲染图像.它运行良好,但我最终得到了几千种颜色,我想让用户选择目标调色板大小并将调色板缩小到该大小.
在我想减少色彩空间的地方,我正在使用RGB像素数据数组,如下所示:
[[190,197,190], [202,204,200], [207,214,210], [211,214,211], [205,207,207], ...]
Run Code Online (Sandbox Code Playgroud)
我尝试了从颜色中删除最低有效位的天真选项,但结果非常糟糕.我已经对颜色量化算法做了一些研究,但还没有找到如何实现颜色量化算法的清晰描述.我可能会想出一种方法将它发送到服务器,通过图像处理程序运行它,然后发回生成的调色板,但我更喜欢在客户端使用JavaScript.
有没有人有一个明确解释的算法的例子可以在这里工作?目标是将几千种颜色的调色板减少到针对该特定图像优化的较小调色板.
编辑(7/25/11):我采用了@Pointy的建议并在JavaScript中实现了(大部分)Leptonica的MMCQ(修改后的中值切换量化).如果您有兴趣,可以在这里查看代码.
编辑(11年8月5日):该clusterfck库看起来像这另一个伟大的选项(虽然我认为它比我的执行慢一点).
我正在测试一个使用Mocha和WebDriverJS的Web应用程序,或多或少在这里描述.测试通过后,一切都很好.但是,如果一个测试失败,套件中的其余测试将超时,并且运行器将在套件的末尾退出,而不关闭Webdriver实例.示例测试用例:
var assert = require('assert'),
client = require("webdriverjs").remote({
logLevel: 'silent'
});
describe('Self-test', function() {
before(function(done) {
client
.init()
.url('http://www.wikipedia.org/', function() {
done();
});
});
after(function(done) {
client.end(function() {
done();
});
});
// tests
it('should fail properly', function(done) {
client.getTitle(function(result) {
assert(false, 'This should fail');
done();
});
});
it('should pass afterwards', function(done) {
client.getTitle(function(result) {
assert(true, 'This should still pass');
done();
});
});
});
Run Code Online (Sandbox Code Playgroud)
输出:
~> mocha test/self-test.js
Self-test
1) should fail properly
2) should pass afterwards …Run Code Online (Sandbox Code Playgroud) 在Chrome和Node中,以下代码会引发错误:
function noop() {}
var a = new Array(1e6)
// Array[1000000]
noop.apply(null, a)
// Uncaught RangeError: Maximum call stack size exceeded
Run Code Online (Sandbox Code Playgroud)
我理解为什么将100万个参数传递给一个函数可能是一个坏主意,但任何人都可以解释为什么错误Maximum call stack size exceeded而不是更相关的东西?
(如果这看起来很无聊,原来的情况就是Math.max.apply(Math, lotsOfNumbers),这是从数组中获取最大数字的一种不合理的方式.)
从最近的一篇 Cloudflare 自动添加 SVCB/HTTPS DNS 记录的文章中,我试图解释他们在 DNS 记录中发布的内容。
SVCB 或 HTTPS 的当前草案似乎是“draft-ietf-dnsop-svcb-https-01”。
使用 dig 获取 cloudflare 博客的 DNS 记录:
dig blog.cloudflare.com -t TYPE65
Run Code Online (Sandbox Code Playgroud)
回答查询:
;; ANSWER SECTION:
blog.cloudflare.com. 300 IN TYPE65 \# 76 000100000100150568332D32390568332D32380568332D3237026832 0004000868121A2E68121B2E00060020260647000000000000000000 68121A2E26064700000000000000000068121B2E
Run Code Online (Sandbox Code Playgroud)
返回答案的 RFC3597 编码格式。
很高兴知道它说了什么。它说什么?
在H3库报价六边形网格在许多决议-使用时,我应该如何选择适合自己的H3的决议polyfill?
我想为特定地理区域中的H3六角形生成shapefile 。特别是,我对分辨率为6、7和9的海湾地区感兴趣。如何为覆盖该区域的六边形创建shapefile?
我是shapefile或任何其他地理数据结构的新手。我对python和R最满意。
我正在考虑用Javascript创建一个新的开源库来处理常见的数据格式转换,但我希望尽可能避免重新发明轮子.是否存在具有以下功能的现有库?
模块化加载器,用于读取不同数据格式的输入(例如XML,CSV,JSON,SQL转储,固定宽度文本,可能是某些二进制格式,自定义格式等)
数据加载到Javascript数据结构和应用的可选自定义转换函数
模块化输出器/发射器输出到不同的数据格式(如上所述)
我知道可以处理其中一些数据类型的各种库,但通常在特定环境或组合中,并且没有我想象的模块化输入/输出结构.
目前是否存在Javascript数据格式转换库?
javascript ×6
h3 ×2
algorithm ×1
apply ×1
backbone.js ×1
c ×1
colors ×1
data-formats ×1
dns ×1
etl ×1
function ×1
geospatial ×1
https ×1
mocha.js ×1
node.js ×1
optimization ×1
palette ×1
reactjs ×1
requirejs ×1
shapefile ×1
validation ×1
webdriver ×1