小编Xwi*_*utX的帖子

如何JSON字符串化javascript日期并保留时区

我有一个由用户创建的日期对象,浏览器填充时区,如下所示:

var date = new Date(2011, 05, 07, 04, 0, 0);
> Tue Jun 07 2011 04:00:00 GMT+1000 (E. Australia Standard Time)
Run Code Online (Sandbox Code Playgroud)

但是当我对它进行字符串化时,时区就会再见

JSON.stringify(date);
> "2011-06-06T18:00:00.000Z"
Run Code Online (Sandbox Code Playgroud)

在保留浏览器时区的同时获得ISO8601字符串的最好方法是使用moment.js并使用moment.format(),但当然如果我通过JSON.stringify内部使用的东西序列化整个命令(在这种情况下,AngularJS),这将无法工作)

var command = { time: date, contents: 'foo' };
$http.post('/Notes/Add', command);
Run Code Online (Sandbox Code Playgroud)

为了完整起见,我的域确实需要本地时间和偏移量.

javascript datetime json date momentjs

49
推荐指数
4
解决办法
4万
查看次数

键入要用于sql表中的"Status"列

我有一个(虚拟)表结构如下:

ticket
  id: int(11) PK
  name: varchar(255)
  status: ?????????

问题是,我应该将哪种数据类型用于状态?我看到以下是我的选择:

  1. varchar表示状态 - BAD,因为没有完整性
  2. 枚举表示状态 - 因为要更改值,我必须更改表,然后是任何带有值的下拉列表的代码等等
  3. 将FK转换为状态表 - 好因为它是动态的,因为它很难通过视线检查(这可能很有用)
  4. varchar FK到状态表 - GOOD因为它是动态的,并且在检查时可见.因为键是有意义的,这通常是不受欢迎的.有趣的是,在这种情况下,状态表完全有可能只有一列,使其成为一个美化的枚举

我是否准确了解了情况?有一个有意义的钥匙真的那么糟糕吗?因为虽然它确实给了我鸡皮疙瘩,但我没有任何理由这样做......

更新: 对于选项4,建议的结构将状态:char(4)FK,状态表.所以,

OPEN =>"打开"

CLOS =>"已关闭"

"PEND"=>"待批准"

"PROG"=>"正在进行中

在这种情况下有什么缺点?在这种情况下,我可以看到使用int over char的唯一好处是轻微的性能.

sql database database-design join key

27
推荐指数
3
解决办法
2万
查看次数

每当我在TFS中签出文件时,都会创建/删除App_offline.htm

我有一个使用.NET 4.0开发的AJAX密集型ASP.NET Web应用程序,使用TFS作为源代码控制.我们最近将我们的开发工具升级为独家使用VS2010和TFS 2010,但现在每次检出文件时,我们都会看到visual studio重新加载所有符号,并删除所有会话.

在输入一些错误记录代码之后,我们发现回收的原因是它认为每当我们结账时App_offline.htm都在变化.这在项目的任何地方都不存在,我的SO-fu已经找到了一些关于SQL Express的信息,使得这个文件被创建和删除,所以这可能就是这里发生的事情.

看起来我安装了SQL-Express,但即使禁用正在运行的服务,问题仍然存在.

有没有办法阻止退出/删除此文件,如果这确实是发生了什么?每当我查看一个文件时,让应用程序回收是令人沮丧的......

asp.net visual-studio-2010 app-offline.htm tfs2010

21
推荐指数
1
解决办法
3938
查看次数

根据尺寸收费 - d3力布局

我正在尝试使用力量导向图d3.layout.force,我需要容器可调整大小 - 我希望能够根据大小计算适当的电荷和linkDistance值,或者让d3为我做一些神奇的方式.

我做了一个尝试(链接:http://jsfiddle.net/VHdUe/6/)只使用节点.我将电荷设置为一个值,该值基于适合横跨圆形半径的节点数量.

该解决方案适用于一些中型容器,但如果您单击调整大小几次,您可以看到它并不适用于所有大小的...

我能看到的唯一前进方法是使用svg缩放变换,这会使我的元素大小变得不利.还有其他选择吗?

PS:我已经看过http://mbostock.github.com/d3/talk/20110921/bounding.html(带有边界框的D3力导向布局的答案),但我更倾向于使用基于引力的解决方案而非边界框一个.

graph d3.js force-layout

13
推荐指数
1
解决办法
7780
查看次数

当包含页面处于怪癖模式时,iframe不以ie9模式呈现

我在一个以怪癖模式运行的页面中有一个iframe(我无法控制包含页面),我需要以与现代浏览器功能兼容的模式呈现我的页面.

包含的页面大量使用较新的JavaScript功能(特别是漂亮的数组函数)和SVG渲染.虽然我可以足够轻松地填充数组函数,但我无法强制svg进行渲染.

要清楚,内部页面不是以怪癖模式运行 - 我已经指定了doctype和ie = edge <meta>标记.看起来它正在使用ie8渲染模式(很难确定)

问题的一个示例如下:http://stevesspace.com/quirks/quirks.html - 在chrome中加载以查看预期输出,并在IE9或10中检查实际输出.

编辑:我已经将文档模式和兼容模式添加到示例中,我可以确认它是使用IE8 doc模式.

html javascript iframe quirks-mode internet-explorer-9

10
推荐指数
1
解决办法
9873
查看次数

SVG梯度为完美的水平路径

我正在使用svg绘制折线图,​​并要求应用渐变.对于每一行,我使用一个path元素并将笔划设置为我的一个lineargradient元素.

这对于除了纯粹的水平线之外的所有东西都很有用 - 在这种情况下,我的线上根本没有颜色.

我做了一个小提示,显示了这个问题:http://jsfiddle.net/b6EQT/

<svg>
    <defs>
        <linearGradient id="grad" x1="0%" x2="100%" y1="0%" y2="0%">
            <stop class="" offset="0%" style="stop-color: red;"></stop>
            <stop class="" offset="33%" style="stop-color: yellow;"></stop>
            <stop class="" offset="66%" style="stop-color: pink;"></stop>
            <stop class="" offset="100%" style="stop-color: blue"></stop>
        </linearGradient>
    </defs>
<-- Gradient not applied -->
<path stroke="url(#grad)" d="M20,20L400,20" style="stroke-width: 10px;"></path>

<-- Gradient applied since height of 1px -->
<path stroke="url(#grad)" d="M20,40L400,41" style="stroke-width: 10px;"></path>

<-- Gradient applied because of fake initial "move to" -->
<path stroke="url(#grad)" d="M-1,-1,M20,60L400,60" style="stroke-width: 10px;"></path>
</svg>?
Run Code Online (Sandbox Code Playgroud)

纯水平线(第一条路径)没有出现,第二条路线(y的微小变化)没有出现.

我尝试了一点点破解让它继续下去 - …

svg gradient path

10
推荐指数
2
解决办法
2130
查看次数

在列表中存在不变量时定义聚合根

我正在做一个家庭日托应用程序,并认为我会尝试使用DDD/CQRS/ES,但我遇到了很好地设计聚合的问题.域名可以很简单地描述:

  • 一个孩子报名参加
  • 一个孩子可以到达
  • 孩子可以离开

目标是跟踪访问的次数,生成发票,记录(例如午餐,伤害等),以防止访问.到目前为止,这些其他操作将是与系统最常见的交互,因为访问每天开始一次,但有趣的事情一直在发生.

我正在努力的不变量是:

  • 如果孩子已经在这里,他们就无法到达

据我所知,我有以下选择

1.单个聚合根 Child

创建一个Child聚合根,与事件ChildEnrolled,ChildArrived并且ChildLeft

这看起来很简单,但由于我希望每个其他事件与访问相关联,这意味着访问将是Child聚合的实体,每次我想添加注释或任何内容时,我必须获取所有访问那个孩子,永远.似乎效率低下且相当无关紧要 - 孩子本身以及其他每次访问都与孩子午餐时的情况无关.

2. Child和和的聚合根Visit

Child将来源ChildEnrolled,Visit并将来源ChildArrivedChildLeft.在这种情况下,我不知道如何保持不变量,除了Visit为此目的服务,我见过这是灰心丧气的.

是否有另一种方法来强制使用此设计的不变量?

这是一种虚假的不变量

我想这是可能的,我应该防止同时登录同一个孩子的多个人,或延迟意味着使用多次点击"登录"按钮.我认为这不是答案.

我错过了一些明显的东西

这似乎最有可能 - 这肯定不是一些特殊的雪花,这通常是如何处理的?我几乎找不到具有多个AR的示例,更不用说带有列表的示例了.

domain-driven-design aggregateroot cqrs event-sourcing

7
推荐指数
1
解决办法
452
查看次数

当内容小于容器时,Chrome 滚动条不会消失

我有一个应用程序,它执行大量调整元素的大小以确保它们适合容器。有时内容会溢出,有时它们非常适合,所以我在容器上使用 overflow:auto 。

问题是在 chrome 中,当容器大小缩小时,容器会出现滚动条,即使获取了新的适当大小的图像,它也是不需要滚动条的正确大小。

对于简单的应用程序来说,一个简单的解决方法是设置溢出:隐藏,然后在回流后,再次设置溢出:自动。然而,在这个应用程序中,容器并不(实际上也不应该)知道它的内容是否会缩放以适应或不适合,甚至在它完成加载时(因此它知道何时更改溢出) . 这类似于这里提到的内容:http : //www.google.ad/support/forum/p/Chrome/thread?tid= 3df53193ac1cf08b& hl=en,但我认为这对我们的情况不可行

当内容适合时,还有另一种方法可以使滚动条消失吗?我已附上 HTML 以查看问题。单击绿色使其变大,然后再次单击使其变小。滚动条在 IE 和 firefox 中消失,但在 chrome 中不消失(单击“修复滚动条”后即可使用)

<!DOCTYPE html>
<html>
<head>
    <title>Scrollbar Woes</title>
    <script type="text/javascript">
        function toggle() {
          var img = document.getElementById('content');
          var span = document.getElementById('size');
          var newSize = 820 - parseInt(span.innerHTML)

          img.style.width = newSize + 'px';
          img.style.height = newSize + 'px';

          span.innerHTML = newSize;  
        };
        function fixSize() {  
          var img = document.getElementById('scroll');
          img.style.overflow = 'hidden';
          img.scrollWidth; // Calculate width to force a …
Run Code Online (Sandbox Code Playgroud)

css google-chrome scrollbars overflow

5
推荐指数
1
解决办法
2977
查看次数

在高潮轴上单击事件

我希望能够将事件绑定到高图表中的轴,因此我可以在UI中为它们公开一些选项(轴间隔,文本格式,网格线等)

似乎不是在highcharts中这样做的方法.到目前为止,当我点击标签时,我可以让它进行我的出价,但是当我点击标签之间的空格时,我不能这样做.请参阅此处的小提琴,版本2.2.4:http://jsfiddle.net/gW4p6/174/

var chart = new Highcharts.Chart({
    chart: {
        renderTo: 'container',
        marginRight: 80 // like left
    },
    xAxis: {
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    },
    yAxis: [{
          lineWidth: 1,
          title: {
              text: 'Secondary Axis'
          }
    }],

    series: [{
        data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]        
    }]
});

var clearSelection = function() { $('.highcharts-axis').css('stroke', ''); };

$('.highcharts-axis').click(function(event) {
    clearSelection();
    $(this).css('stroke', 'green');
    return false;
}); …
Run Code Online (Sandbox Code Playgroud)

jquery svg highcharts jquery-events

3
推荐指数
1
解决办法
7938
查看次数