小编Chr*_*nte的帖子

我应该版本控制我的jQuery插件的缩小版本吗?

假设我写了一个jQuery插件并将其添加到我的存储库(在我的案例中为Mercurial).比方说,这是一个单独的文件jquery.plugin.js.我正在使用BitBucket来管理这个存储库,它的一个功能是下载页面.所以,我添加jquery.plugin.js了下载之一.

现在我想提供我的插件的缩小版本,但我不确定最佳做法是什么.我知道它应该可以在下载页面上找到jquery.plugin.min.js,但是每次我更新时都应该对它进行版本控制以反映未公开的版本吗?

我看到控制缩小版本的版本最明显的问题是,每次我对未经编译的版本进行更改时,我可能会忘记更新它.

那么,我应该版本控制缩小文件吗?

javascript version-control

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

这个C#Dictionary <,>优化有什么意义?

我正在使用C#4.0.Visual Studio中的"优化代码"已打开.

在类中考虑以下代码:

Dictionary<int, int> dictionary = new Dictionary<int, int>();

public void IncrementDictionary(int key) {
    if (!dictionary.ContainsKey(key)) {
        dictionary[key] = 1;
    } else {
        dictionary[key]++;
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里,调用以IncrementDictionary执行以下两项操作之一:

  • 如果不存在任何值key,则创建一个值并将其初始化为1.
  • 如果存在值,则值将增加1.

现在看看当我使用ILSpy反编译结果时会发生什么:

Dictionary<int, int> dictionary = new Dictionary<int, int>();

public void IncrementDictionary(int key) {
    if (!dictionary.ContainsKey(key)) {
        dictionary[key] = 1;
        return;
    }
    Dictionary<int, int> dictionary2;
    (dictionary2 = dictionary)[key] = dictionary2[key] + 1;
}
Run Code Online (Sandbox Code Playgroud)

注意:在使用它的实际生产代码中,优化器/编译器还会创建:int key2 = key;key2在最后一行中使用.

好的,var已被取代Dictionary<int, int> …

c#

9
推荐指数
1
解决办法
968
查看次数

使用非接口的构造函数参数的依赖注入

我仍然是DI的新手,我试图理解我是否以错误的方式思考问题.当我想表示一个依赖于IRandomProvider的Die对象时,我正在解决玩具问题.那个界面很简单:

public interface IRandomProvider 
{
   int GetRandom(int lower, int upper);
}
Run Code Online (Sandbox Code Playgroud)

我想要一个看起来像这样的Die构造函数:

Die(int numSides, IRandomProvider provider)
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用具有如下方法的静态DIFactory:

    public static T Resolve<T>()
    {
        if (kernel == null)
        {
            CreateKernel();
        }
        return kernel.Get<T>();
    }
Run Code Online (Sandbox Code Playgroud)

CreateKernel只是绑定到IRandomProvider的特定实现.

我希望能够用以下方式调用:

DIFactory.Resolve<Die>(20);
Run Code Online (Sandbox Code Playgroud)

如果没有制作特殊版本的"Resolve",我就无法完成这项工作,这可以让我处理ConstructorArgs.这似乎使事情变得过于复杂,并且需要我为其中的每个其他实例修改DIFactory,以及绑定到构造函数参数的特定名称.

如果我重构Die类不使用int构造函数,一切正常.但现在有人必须记住初始化numSides参数,这似乎是一个坏主意,因为它是类的要求.

我怀疑这对DI来说是一个糟糕的心理模型.任何人都可以开导我吗?

c# dependency-injection ninject

9
推荐指数
2
解决办法
1万
查看次数

jquerymobile动态更改按钮问题的文本

我正在尝试动态更改按钮的文本.但是按钮的UI会搞砸.知道为什么吗?http://jsfiddle.net/L6xRZ/

javascript jquery button jquery-mobile

8
推荐指数
1
解决办法
5543
查看次数

Symfony2 - 如何检查我们是否从移动设备调用

使用Symfony2,我需要检查控制器,我是从移动设备或桌面Web浏览器调用的.

根据请求的来源,根据屏幕大小和条件呈现不同的树枝模板.

这样做有什么好办法?我们在Controller中有什么检查这个?

php android symfony ios

8
推荐指数
2
解决办法
1万
查看次数

mysql_install_db给出致命错误:找不到my-default.cnf

我下载了MySQL,我正在尝试设置MySQL授权表,但是当我键入:

scripts/mysql_install_db --basedir=/usr/local
Run Code Online (Sandbox Code Playgroud)

我得到上面的错误.

我不确定如何修复它,就像my-default.cnfsupport_files目录中一样,我相信我basedir正确设置.

(这是在mac btw上)

mysql database installation

8
推荐指数
1
解决办法
2万
查看次数

jQuery会不会在px之外的其他内容中返回CSS测量值?

我正在重写我的Textarea Line Count插件(< - 无耻插件),并有这个问题:

当我打电话时$("#someElement").css("letter-spacing"),我会获得ems或其他任何值的价值px吗?基于这个例子:http://jsfiddle.net/xhhr2/,至少在Google Chrome中,似乎jQuery或浏览器正在px为我转换测量值.我可以一直期待这种行为吗?

html javascript css jquery

7
推荐指数
2
解决办法
272
查看次数

如何阻止直接访问我的JavaScript文件?

我使用Minify来缩小和缓存我的所有脚本请求.我只希望我的用户能够访问JavaScript文件的缩小版本.

缩小谎言,www.example.com/min我的脚本在www.example.com/scripts.如何阻止直接访问doc_root/scripts我未明确的JavaScript文件所在的位置.我宁愿不把它们从文档根目录中删除,但它是一个选项.

请注意我正在使用Zend Framework,因此我的应用程序的实际根目录转移到了www.example.com/public.htaccess文件处理重写.

javascript php minify

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

如何使用MEF允许插件覆盖现有功能?

我正在使用MEF来允许用户扩展我的C#库.它到目前为止工作得很好,但是现在我正试图以我以前没见过的方式使用它.

我到目前为止看到的MEF的主要用例是:

  • 应用程序公开原始接口(IPerson)
  • 外部库使用MEF和原始接口来扩展主库的功能(例如IPoliceman : IPerson,添加功能)
  • 然后ImportMany,应用程序IPerson根据必须执行的操作用于搜索正确的内容

但我需要这样的事情:假设我有一个税收计算器,它接受一堆参数并根据这些参数返回估计税.我希望用户能够使用MEF创建插件来修改这些计算的完成方式.应该只能在任何时候加载一个执行此操作的插件.否则,我如何决定使用哪种替代实现?

所以基本上,我的问题归结为:通常MEF允许添加类和方法的实现.如何使用它来允许用户替换实现?

c# mef

7
推荐指数
2
解决办法
1750
查看次数

如何让我的DebuggerTypeProxy目标类继承自基本代理?

问题: 我正在寻找一种方法来简化继承类的调试器类型代理的构造.因此,调试从另一个继承的类时,我应该看到并排侧的属性:基类的基本属性,再加上父类的新特性.

这是我到目前为止所尝试的:

  1. NewA的类型代理继承自A.属性不是并排显示的; 基本属性是伞[sic]下Base.*****
  2. 包括A物业NewA,只是蒙上目前NewAA,与[DebuggerBrowsable(RootHidden)]:Visual Studio中挂起:(

我知道我可以只将基类的属性添加到NewA代理中,但我试图避免这种情况.这对于具有许多属性的类来说太过分了.


说明:

我在我的DebuggerTypeProxy一些类中使用了该属性,因此我可以控制在调试期间浏览时类的外观.例如:

public class A {
    private String _someField;

    public String SomeField {
        get {return _someField;}
    }
} 
Run Code Online (Sandbox Code Playgroud)

默认情况下,工具提示调试信息显示为:

在此输入图像描述

...所以我使用DebuggerTypeProxy来隐藏支持字段:

[DebuggerTypeProxy(typeof(AProxy))]
public class A {
    // ...

    internal class AProxy {
        A _a;
        AProxy (A a){
            _a = a;
        }

        public String SomeField {
             get {return _a.SomeField;}
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

......一切都与世界是对的:

在此输入图像描述


现在,我创建了一个继承自A的类. …

.net c#

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