问题标签 [dirty-data]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
caching - “脏标志”/“脏值”是什么意思?
我在工作中的一些源代码和一些其他代码中看到了一些名为“脏”的变量。这是什么意思?什么是脏标志?
javascript - 检查集合中的任何脏 Backbone 模型数据
当用户在不同的 Backbone 集合模型之间切换时(通过单击表格行),我需要“唠叨”用户未保存的更改。我搜索了“检查主干模型脏数据”(例如),但没有找到任何确定的东西。
我使用下划线的“some”和isEqual 功能以如下方式完成了此操作,“some()”足以确定是否存在任何未保存的更改(与那些可能的精确更改相反),在特别是因为模型属性实际上是一个对象数组。
我是 Backbone 的新手,我想知道这是否是一种可以接受的用于临时检查脏模型数据的方法。或者,Backbone 是否为此目的提供了某种内置功能,而我最初的谷歌搜索尝试并没有显示出来?
memory - 页表条目中的 x86 脏位
英特尔架构手册说,当第一次对内存页进行写访问时,CPU 会设置页表条目的脏位。我对这个问题有疑问。
先感谢您。
angularjs - angularjs - 基于脏范围简化表单(自动)提交
问题空间
我有一个问题,我根据正在满足的标准提交表单,而不是有一个表单提交按钮。
假设我有 3 个下拉菜单,前两个已分组但需要选择一个,这意味着我可以选择一个或另一个但不能将它们留空,第三个是必填字段。
之后,页面会自动获取结果。
可以说我有复选框和更多的下拉菜单。提到的 3 个下拉列表、复选框和下拉列表中的任何未来选择都会自动过滤结果。
我知道的
现在,在阅读了 Angular 文档之后,我正在检查 $dirty、$pristine 和两者的操作,比如 $setDirty 和 $setPristine; 但是,这似乎是针对FormController
所以我假设这对整个范围都很有用。对于选定的范围,我没有看到任何可以弄清楚的倾向。
到目前为止我所拥有的
所以基本上,我希望我能利用示波器的跟踪功能,但我对此知之甚少。我为我的应用程序和一个范围创建了一个控制器,因为这对我来说似乎最简单。我有 3rd 方插件在范围内发挥作用,例如:
$scope.3rdpartyConfig = { prop1: [], prop2: getData() }
如果我要检查表单的 $dirty 状态,我认为这样的事情在检查表单提交时不会有用。
然后我想到了我以前做事的旧方式,但是“角度化”了它:
所以我会有类似的东西:
所以我会在我的 html 表单上进行 ng-changes 和 ng-clicks,点击该函数,该函数看起来像这样的伪代码:
但我在想这不是有角度的做事方式,因为这肯定没有便利。
我希望范围能提供某种方式,在提交和获取数据之前,我可以检查范围的哪些部分是脏的,或者是否有比将这个函数附加到每个 html 更好的方法元素; 就像拥有某种范围跟踪器,我可以检查和观看。
这提醒了我,我也不想拥有一系列 $scope.$watch ,只是绑定到每段 html 代码的工作量太大了,除非有办法观察 a 的范围那么,我不介意收集特定的范围变量。
喜欢(原谅伪代码):
编辑(2013 年 2 月 28 日):
我试过这样做:
观察者没有检测到任何东西,并且我更改为 AppModel 范围的任何值都没有在 $watch 中被拾取。值得一试,仍在努力解决这个问题。
session - NHibernate:如何知道是否会在 Flush() 上发送 SQL?
我对 NHibernate 的 IsDirty() 方法有点困惑。
从我的数据库中获取一个(非常大的)复杂对象后,NHibernate 的 ISession.IsDirty() 直接给出“真”。
但是,如果我这样调用 Commit() :
这导致没有 sql(“exec sp_reset_connection”除外)。
我已经读过,由于“映射选择”,您可以在会话中获得“幽灵”(导致会话说它很脏),但它不会也尝试更新一些东西吗?此外,如果这是由例如将 sql 位“转换”为 ac# bool 引起的,我认为我无法更改它……(不过,不知道这是否可能是鬼的原因)。
更新 2: 这里涉及到几个(sql server)视图和表。这是(非常)简化的类:
'PlantItem被存储在一个表中。所以我希望当我更改 PlantItem 中的任何内容时,IsDirty 应该更改为“true”。
我的问题是:有没有办法检查此时的会话是否会在 flush() 上(或者在我的情况下在 commit() 上)会生成实际的 sql 语句?如果没有:是否有另一种方式(手动)存储某种会话快照以与当前会话进行比较?
更新1:我真的还应该提到这些方面:
- 我的 FlushMode 设置为“无”。
- 'IProject'-object 本身的基础数据基于 sql-view,因此映射中的大多数属性设置为 update="false"
- 当我实际更改对象中的某些内容并使用相同的保存方法时,正在发送 sql 更新语句(因此一切都很好)
ruby-on-rails - 如果没有更改,Rails 保存方法
我似乎记得在某处读过,如果没有更改任何属性(可能是活动记录脏的一部分),rails 不会提交到数据库,是这样吗?我似乎无法找到它,并且快速浏览了源代码后也不明智。
如果这是错误的,我需要使用 before_save 回调,因为我想根据是否发生更改来运行一些代码。
我假设使用脏数据的 after_save 不起作用?
javascript - AngularJS - 在不删除验证错误的情况下设置原始表单
我们有一个特定表单的自动保存和显式保存(它是一个长表单,我们不希望用户丢失数据)。对于显式保存,无效数据将阻止保存发生,并且不会将 XHR 发送回服务器。但是,对于自动保存,我们希望保存数据(如果可能),而不管前端验证如何。
我们需要做的是,如果在后端保存成功,前端应该将表单标记为不再脏。但是......这是贴纸 - 它不应该从表单中删除任何验证错误/错误消息。
从我所看到的(或至少从我的理解)来看, .$setPristine() 将清除表单,但它也会有问题地消除验证错误。
有没有办法在不删除验证错误的情况下清除表单,以便自动保存在它已经执行保存时不会运行,但这样用户仍然可以获得哪些字段无效的反馈,以便他们可以修复问题?
谢谢!
jquery-plugins - 如何找到触发了dirtyforms 弹出窗口的原因?
我有一个通常适用于脏表单的表单。但是,在一种情况下,当单击日期时,jquery-ui 数据选择器日历会弹出“确定”对话框。
我强调这通常可以正常工作。这种情况与表单数据源的初始条件有关。当被引用的对象存在时,事情会起作用,但如果它是新的,则不会。所以我确信表单的初始条件有所不同。但理论上形式应该是相同的。
如何找到导致弹出窗口的原因,以便解决我的问题?
ruby-on-rails-4 - 如何检查模型上的任何属性是否已更改
我有一个包含以下字段的地址模型:number, street, city, post_code
.
我使用一种称为fulladdress
将所有字段插入到一个中的方法,然后将其传递给地理编码器,该地理编码器返回地址的经度和纬度。
这是我的地址模型:
目前,地理编码器仅更新经度和纬度(如果number
已更改)。我想要的是地理编码器在有任何number, street, city, post_code
变化时运行。执行此操作的最佳实践方法是什么?
sql - 检测 SQL Server 表中的修改页面
有没有办法检查 SQL Server 表(或者更好的是,该表中的页面)是否在某个时刻被修改?例如,SQL 差异备份使用脏标志来了解自上次备份以来数据的哪些部分发生了更改,并在成功备份后重置这些标志。
有没有办法从 MS SQL Server 获得这个功能?即,如果我想在有时会更改的数据库表上缓存某些聚合值,我怎么知道何时使缓存无效?或者是以编程方式实现它并在写入数据库时保持这一点的唯一方法?
我正在使用 C# .NET 4.5 通过 NHibernate 访问 SQL Server 2008 R2。