我一遍又一遍地听说"将DOM用作数据库是不好的做法".
虽然我大多同意这种观点,但这个问题更多的是黑白情况.记住jQuery .data()
方法和HTML5数据属性规范的最新版本,为方便起见,将一些数据粘贴到DOM中真的很糟糕吗?
例如,我最近通过执行以下操作在一个充满输入的表上实现了"实时"计算功能:
<table>
<tr>
<td><input type="text"></td>
</tr>
<tr>
<td><input type="text"></td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
jQuery的:
$('table').bind('calculate',function(){
var total = 0;
$(this).find('tr').each(function(){
total += $(this).data('value');
});
// display total
});
$('table input').bind('change keyup',function(){
$(this).closest('tr').data('value',$(this).val());
$(this).closest('table').trigger('calculate');
});
Run Code Online (Sandbox Code Playgroud)
这是一个过于简化的示例,因为我可以跳过调用.data()
并直接转到输入值,但让我们想象一个稍微复杂的场景,其中输入以外的元素会影响行值.
在这种情况下使用DOM存储简单数据是错误的吗?
我被这个困惑了.
jQuery.height()在Firefox和Chrome中返回不同的值.测量屏幕上的像素表示两者中的一个,Chrome似乎报告了正确的值,而firefox每次关闭2或3个像素.还有其他人遇到过这个问题吗?
我尝试使用各种jQuery高度函数(innerHeight,outerHeight,height)来获取高度无济于事.我已经删除了可能干扰高度值(所有填充,边框,边距等)的所有CSS样式,但我仍然得到不一致的结果.
如果它有帮助,我正在处理表格单元格.代码在第一个表旁创建第二个表,然后匹配每行的高度以在表上创建一种"粘性"左侧列.单元格具有不同的内容,但在所有边上匹配边界,填充和边距的0值.
编辑 6小时后,这个问题继续困扰我.
当我修改边框并切换到使用innerHeight()来获得高度测量时,两个浏览器都会完美地渲染它.但我需要在那里找到一个底线...
目前我有webkit完美地渲染带有边框的表格,并且每个单元格上的firefox关闭了1px.我转而使用jQuery的innerHeight()函数来获取'master'表中单元格的高度,但不知何故,firefox总是在测量时出现一个像素.
这是涉及的相关代码.请注意,HTML是由firebug复制的,后者是由javascript生成的,所以高度声明就是在那里进行的.'master'表格HTML:
<table cellpadding="0" border="0" class="items-table">
<tbody>
<tr class="selected">
<td itemid="70609" class="id" style="display: none;">
70609
</td>
<td class="thumb">
<div class="item-thumb">
<div style="background-image: url("http://c1263382.cdn.cloudfiles.rackspacecloud.com/2C5D13C6-8A9F-47D9-81B51305D3FF24A9_t.jpg");" class="item-thumb-image">
<img src="http://c1263382.cdn.cloudfiles.rackspacecloud.com/2C5D13C6-8A9F-47D9-81B51305D3FF24A9_t.jpg">
</div>
</div>
</td>
<td class="details">
<div class="name">
<span class="code">R1000</span> <span class="description">Armoire</span>
</div>
<div class="itemtype">
<span>Casegoods</span> <input type="hidden" value="13" name="70609-itemtypeid" id="70609-itemtypeid" class="itemtypeid">
</div>
</td>
</tr>
<tr class="selected">
<td itemid="70634" class="id" style="display: none;">
70634
</td>
<td class="thumb">
<div class="item-thumb">
<div style="background-image: url("http://c1263382.cdn.cloudfiles.rackspacecloud.com/29DA825A-0431-49ED-A2614B3544EB50D2_t.jpg");" class="item-thumb-image">
<img src="http://c1263382.cdn.cloudfiles.rackspacecloud.com/29DA825A-0431-49ED-A2614B3544EB50D2_t.jpg">
</div>
</div>
</td>
<td …
Run Code Online (Sandbox Code Playgroud) (这是一个冷血问题)
我有两个不同的结构,可能包含或不包含相同的数据,我希望能够看到它们是否存在!我的结构将始终包含简单值(数字,字符串或布尔值),因为它们是使用DeserializeJSON创建的,所以希望这可以轻松完成.
我在这里发现了Ben Nadel的帖子,但这种技术似乎对我不起作用.这是我到目前为止所尝试的(其中有一些cfwheels代码):
itemA = DeSerializeJSON(model("itemsnapshot").findByKey(4).json);
itemB = DeSerializeJSON(model("itemsnapshot").findByKey(5).json);
StructDelete(itemA,"updatedAt");
StructDelete(itemB,"updatedAt");
StructDelete(itemA,"createdAt");
StructDelete(itemB,"createdAt");
writedump(itemA);
writedump(itemB);
out = itemA.Equals(itemB);
writedump(out);
Run Code Online (Sandbox Code Playgroud)
结果如下:
Struct
code string C112
companyid number 1
cost number 5000
deletedAt string
description string Nightstand
id number 70634
itemtypeid string 13
projectid number 8
unittypeid string
Struct
code string C112
companyid number 1
cost number 5000
deletedAt string
description string Nightstand
id number 70634
itemtypeid string 13
projectid number 8
unittypeid string
boolean false
Run Code Online (Sandbox Code Playgroud)
因此,正如您将在上面看到的那样,尽管Structs中的数据看起来完全匹配,但它们不会通过Equals()测试.
还有其他人成功完成了吗?
我刚刚完成了令人敬畏的Coursera Scala课程,并渴望通过探索一些现有的开源项目继续学习更多关于Scala的知识.不过,我试图让其中一些在本地运行时遇到了麻烦.
我来自Ruby的背景,我们使用诸如rvm
或rbenv
在一个系统上管理多个Ruby解释器/版本的工具.Scala用户使用不同版本的Scala/SBT的项目采用什么方法?
我怀疑我错过了一些大事,因为这似乎不是一个受欢迎的问题.
请注意,我对Java和JVM一般都是新手.
我正在开发一个应用程序,它创建并存储与应用程序范围中的本地XMPP服务器的连接.连接方法存储在cfc中,以确保Application.XMPPConnection在每次使用时都已连接并授权,并利用连接向用户发送实时事件.据我所知,这工作正常.但它没有在任何压力下进行测试.
我的问题是:这个设置会在以后引起问题吗?我只是问,因为我找不到其他人以这种方式使用Application变量的证据.如果我不使用railo,我将使用CF的事件网关来完成相同的任务.
我有一个spec/controllers/add_to_carts_spec.rb
:
require 'spec_helper'
describe CartItemsController do
before (:each) do
@user = Factory(:user)
sign_in @user
end
describe "add stuff to the cart" do
it "should add a product to the cart" do
product = FactoryGirl.create(:product)
visit products_path(product)
save_and_open_page
click_on('cart_item_submit')
end
end
end
Run Code Online (Sandbox Code Playgroud)
并且/spec/support/spec_helper.rb
:
# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'capybara/rspec'
# Requires supporting ruby files with custom matchers and macros, etc, …
Run Code Online (Sandbox Code Playgroud) 我非常喜欢和使用jQuery,但我希望能找到一个特殊项目的替代解决方案.
我正在创建一个书签,它将与我的应用程序连接,以允许用户更快地输入信息.我目前应用程序中最大的痛苦之一就是上传图像.用户(理智)讨厌以有组织的方式将图像下载到他们的计算机,然后将它们上传到应用程序的过程.
我喜欢这个书签要做的是加载一个带有几个小控件的小div叠加,其中包括一个允许用户将图像从当前页面拖放到控件中的控件.然后,该脚本将收集那些img标签的URI并将其与表单一起提交给应用程序,然后服务器会自动将它们下载到应用程序中.
因此,对于此任务,每次单击bookmarklet时,将jQuery和jQuery UI加载到页面中似乎是一种非常严厉的方法.
任何人都可以推荐一个漂亮,轻量级的JavaScript工具包来处理拖放功能,没有别的吗?
我很高兴看到新的DragDealer工具,它看起来很棒,就在今天的ajaxian上,但它似乎只是处理拖动而不是"掉落"(即不是目标)
有没有人遇到过用任何语言编写的脚本/ cl应用程序,它可以很好地解析人类输入的日期?我希望能够解析,例如:
我正在尝试提出一个解决方案来支持我们在整个站点中使用的“历史视图”机制。对于这个历史视图的 UI,我想向用户展示一个对象的两次修订之间发生了什么变化。换句话说,差异。
这是一个真正的挑战,因为所讨论的对象都相当复杂。我认为最好的方法是将每个对象呈现为 HTML,然后在生成的 HTML 上使用某种差异工具来向用户展示差异。
到目前为止,我最接近工作解决方案的是使用 google-match-patch 库 ( http://code.google.com/p/google-diff-match-patch/ )。我实现了 wiki 中描述的一种建议方法,用于将 google-match-patch 与结构化内容一起使用(http://code.google.com/p/google-diff-match-patch/wiki/Plaintext),但结果是不太对。作为参考,这是我的(有点粗糙 - 我只是在测试概念)代码:https : //gist.github.com/921264
我的问题:如上述维基页面所述,“正确的解决方案是使用基于树的差异、匹配和补丁。” 任何人都可以建议这样一个用 JavaScript 编写的库吗?
我尝试了 DaisyDiff (java) 并且对结果不满意。
编辑:这是一个用于展示和讲述的有效jsfiddle!
编辑 #2:分享是关怀:https : //github.com/GenuineParts/TableDiff
给定查询(伪代码):
<cfquery name="myquery">SELECT * FROM stuff</cfquery>
Run Code Online (Sandbox Code Playgroud)
我如何摆脱第一条记录?在这种情况下,更改SQL不是一种选择.我试过了:myquery.RemoveRows(0,1);
但收到了一个错误:
No matching Method/Function for Query.REMOVEROWS(numeric, numeric) found
Run Code Online (Sandbox Code Playgroud)
我在Railo 3 BTW上