我正在构建一个Railo应用程序,它处理通过Ajax来回发送的大量JSON数据.我发现了一个优化其性能的机会,但在我解决之前,我想听听社区的一些建议.
这是一个很好的例子.
我在服务器上有一个操作,查询一组出价响应,将它们序列化为JSON,然后将它们返回到前端的javascript,然后解析并呈现一些HTML.Railo返回JSON的格式是熟悉的双节点对象:
{"COLUMNS":["one","two","three",...],"DATA":["value","value","value",...]}
Run Code Online (Sandbox Code Playgroud)
我写了一个函数,利用下划线的map()函数将这种格式转换为具有命名节点的对象数组:
function toArgsObject(data,columns) {
return _.map(data, function(w){
var q = {};
for (var i=0; i < w.length; i++) { eval("q."+columns[i]+" = w[i]"); };
return q;
});
};
Run Code Online (Sandbox Code Playgroud)
这可以很好地完成工作,但性能不是很好!即使使用像webkit和firefox那样的swift js解释器,这个函数通常占调用函数的75%的处理时间,特别是当数据集很大时.我想看看通过将这个处理卸载到服务器可以获得多少改进,但是我没有完全使用cfml/cfscript chops来编写这个的有效版本.
那么,我需要从服务器返回的内容如下所示:
[
{"one":"value","two":"value","three":"value"},
{"one":"value","two":"value","three":"value"}.
...
]
Run Code Online (Sandbox Code Playgroud)
我知道SerializeJSON使用的格式会创建更小的响应,因此使用更少的带宽来发送.这就是实验的用武之地.我想看看它如何影响我的应用程序以不同的方式做事!
有没有人写过JSON Serializer,可以以这种格式返回数据?
我正在寻找HTML5 <canvas>动画的基本示例.例如,使球弹跳等
如果有人有,我会非常感激.
在创建网站设计时,提供固定内容宽度的唯一真正选择是什么?
我注意到大多数主要网站(包括此网站)将所有内容都集中到固定宽度,这可确保所有元素在所有屏幕尺寸上都看起来正确.
我想我已经知道了这个答案,但是一位同事似乎认为永远不应该有一个水平滚动条,一个网站应该调整到用户的屏幕宽度.我认为文本可以调整大小但其他元素不能(按钮,文本框等),因此固定宽度是唯一的选择.
我一路都爱你的意见.
当然,固定宽度是唯一可以保证所有浏览器布局正确的方法吗?
我有一个函数接受来自网络的请求.大多数情况下,传入的字符串不是unicode,但有时它是.
我有代码将所有内容转换为unicode,但它报告此错误:
message.create(username, unicode(body, "utf-8"), self.get_room_name(),\
TypeError: decoding Unicode is not supported
Run Code Online (Sandbox Code Playgroud)
我认为原因是'body'参数已经是unicode,所以unicode()引发了异常.
有没有办法避免这种异常,例如在转换之前判断类型?
在下面的代码中,为什么返回列出了两个方法(增量和打印)?为什么你不能使用return counter++?还有,返回一个是什么意思console.log?
function create() {
var counter = 0;
return {
increment: function() {
counter++;
},
print: function() {
console.log(counter);
}
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
尊重所有,
我有一个HTML表单,其中包含不同的控件,如文本框和复选框.我想在用户按下ENTER键时将焦点从一个控件移动到下一个控件,而不使用该tabindex属性.
可能吗?
我正在尝试制作一条灰色线条,这条线条渐渐变为透明.我创建了一个div,即1x100px,并添加了css渐变以产生淡入淡出效果.
它工作正常,除了在IE中,div得到一个蓝色边框,我不能摆脱它.
这是我的div的css
#left_header_border {
position:absolute;
bottom:-1px;
left:-100px;
width:100px;
height:1px;
/* gradient */
background-color: transparent;
background-image: -moz-linear-gradient(left, transparent, #cccccc); /* FF3.6 */
background-image: -o-linear-gradient(left, transparent, #cccccc); /* Opera 11.10+ */
background-image: -webkit-gradient(linear,left bottom,right bottom,color-stop(0, transparent),color-stop(1, #cccccc)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient(left,transparent, #cccccc); /* Chrome 10+, Saf5.1+ */
background-image: linear-gradient(left, transparent, #cccccc);
filter: progid:DXImageTransform.Microsoft.gradient(gradientType=1, startColorStr='transparent', EndColorStr='#cccccc'); /* IE6–IE9 */
}
Run Code Online (Sandbox Code Playgroud)
我试图检查div,并使其更高,渐变似乎工作,但颜色是蓝色,并添加边框.为什么?
我有一个相当奇怪的问题:我如何比较字符串(使用Python),其中字符串X是ASCII,字符串Y是UTF还是Unicode?
目前,当我比较字符串时,我收到以下问题:
UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
filteredtext = [t for t in s if t.lower() not in stopwords]
Run Code Online (Sandbox Code Playgroud)
如何确保字符串格式相同?
最好的祝福.
这是否意味着我只能在提供脚本的HTML页面的域上执行AJAX调用,或者仅在脚本文件来自的域上执行?
如果我的脚本在foo.com上,并且它位于bar.com的页面中,那么我可以在哪里进行AJAX调用?foo.com或bar.com?