问题列表 - 第45586页

eval()和附加脚本标记之间的Javascript差异

我想知道是否有人可以解释使用Javascript的eval()和另一种方法之间的区别,比如使用JQuery创建脚本标记然后将该元素附加到页面:

eval(somecode);
Run Code Online (Sandbox Code Playgroud)

$("<script type='text/javascript'>"+somecode+"</script>").appendTo("head");
Run Code Online (Sandbox Code Playgroud)

不确定这是否相关,但这里是上下文:我正在使用Drupal Popups模块的一个版本,其基本目的是通过AJAX整个页面请求轻松将常规链接转换为弹出窗口并将其附加到页面中一个模态窗口.这通常包括外部CSS和Javascript文件.为了提高所有这些AJAX加载的性能,我转而使用AJAX排队,并将外部脚本的eval()更改为列出的替代方案.但是,这会在其他各个页面上引发零星的Javscript错误.

javascript ajax jquery eval

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

Java中的类加载器究竟是什么?

当客户在Java中说"Code不应该有自定义类加载器"时,这究竟意味着什么?我不能做什么?

java classloader

6
推荐指数
1
解决办法
2342
查看次数

jQuery验证 - 覆盖核心验证方法

我正在使用jQuery Validation插件.

我已经覆盖了所需的规则,因为我的依赖于某些自定义条件,如下所示:

$.validator.addMethod("required", function(value, element) {
    console.log("required", element);

    return someCondition && value != null;
}, "This is is required.");
Run Code Online (Sandbox Code Playgroud)

然而,当表单被验证时,我看到"required"每个元素打印两次意味着函数被调用两次.只要我将方法名称更改为"myRequired"并添加以下类规则,该函数就会被调用一次.

$.validator.addClassRules({
    required : {
        myRequired: true
    }
});
Run Code Online (Sandbox Code Playgroud)

即使我添加了一个具有相同名称的方法,似乎核心所需的方法仍然完好无损并被调用.无论如何完全覆盖核心规则方法?

validation jquery

14
推荐指数
1
解决办法
7657
查看次数

在JUnit测试中使用JMockit多次模拟静态方法

我有一个静态方法的类,我目前正在使用JMockit进行模拟.说它看起来像:

public class Foo {
    public static FooValue getValue(Object something) {
        ...
    }
    public static enum FooValue { X, Y, Z, ...; }
}
Run Code Online (Sandbox Code Playgroud)

我有另一个类(让我们称之为MyClass)调用Foo的静态方法; 我正在尝试为这个类编写测试用例.我的JUnit测试,使用JMockit,看起来像这样:

public class MyClassTest extends TestCase {
    @NonStrict private final Foo mock = null;

    @Test public void testMyClass() {
        new Expectations() {
            {
                Foo.getValue((Object) any); result = Foo.FooValue.X;
            }
        };
    }

    myClass.doSomething();
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,花花公子,当测试执行时,我的MyClass实例将在调用Foo.getValue()时正确获取Foo.FooValue.X的枚举值.

现在,我正在尝试迭代枚举中的所有值,并重复运行测试.如果我将上面的测试代码放在for循环中并尝试将模拟静态方法的结果设置为每个枚举值,那么这不起作用.Foo.getValue()的模拟版本总是返回Foo.FooValue.X,并且在迭代枚举时从不返回任何其他值.

如何在单个JUnit测试中多次模拟静态方法?我想做这样的事情(但显然它不起作用):

public class MyClassTest extends TestCase {
    @NonStrict private final Foo mock = null;

    @Test public void testMyClass() …
Run Code Online (Sandbox Code Playgroud)

java methods junit static jmockit

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

PHP数组性能

我正在测试一个2d bin包装的算法,我选择PHP来模拟它,因为它现在是我的面包和黄油语言.

正如您在http://themworks.com/pack_v0.2/oopack.php?ol=1上看到的那样,它运行良好,但您需要等待大约10-20秒才能打包100个矩形.对于一些难以处理的集合,它将达到php的30s运行时限制.

我做了一些分析,它表明大部分时间我的脚本经过一个小的2d数组的不同部分,其中包含0和1.它要么检查某个单元格是否等于0/1,要么将其设置为0/1.它可以进行数百万次这样的操作,每次都需要几微秒.

我想我可以使用静态类型语言中的一系列布尔值,事情会更快.甚至可以创建一个1位值的数组.我正在考虑将整个事物转换为某种编译语言.PHP对它不好吗?

如果我确实需要将其转换为C++,那么自动转换器有多好?我的脚本只是用于基本数组和对象操作的循环.

编辑.这个函数被调用比任何其他函数更多.它读取一个非常简单的对象的一些属性,并通过一个小数组的一小部分来检查是否有任何元素不等于0.

function fits($bin, $w, $h, $x, $y) {

    $w += $x;
    $h += $y;

    for ($i = $x; $i < $w; $i++) {

        for ($j = $y; $j < $h; $j++) {

            if ($bin[$i][$j] !== 0) {
                return false;
            }
        }
    }

    return true;    
}
Run Code Online (Sandbox Code Playgroud)

更新:我尝试使用1d数组而不是2d作为建议的答案之一.由于我需要始终可以访问当前的bin宽度,因此我决定将所有内容包装在对象中.此外,现在在每个循环中都需要计算索引.现在脚本需要更多时间来运行.其他技术并没有带来太多的性能提升,而是使代码的可读性降低.我猜是时候嘻哈了.

更新:既然hiphop php只在linux上运行,而我没有,我决定用C++重写整个内容.刷新旧技能真好.另外,如果我找到了使用hiphop的方法,那么比较手写的C++代码和hiphop会产生的代码将会很有趣.

更新:我用c ++重写了这个东西,平均来说它的工作速度提高了20倍,并且使用的内存更少.让我看看我能否做得更快.

php arrays performance

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

这个符号在IntelliJ中意味着什么?(文件名左下角的红色圆圈,里面有'J')

在我创建的Java项目的IntelliJ目标文件夹下,我在包中有一些java源文件.在每个文件旁边,"J"图标有一个红色圆圈,旁边有一条直线.

那是什么意思?我如何解决它?

java intellij-idea target

118
推荐指数
6
解决办法
11万
查看次数

python变量函数定义

首先,如果已经被问过,请不要开枪 - 我环顾四周但无济于事.

我有一个python文件(命名rpc.py)包含许多服务AJAX请求的函数.例如:

def test(self, vars):
    return vars['id']

def test2(self, vars):
    return vars['id']+1
Run Code Online (Sandbox Code Playgroud)

并使用以下URL调用它:

rpc.py?fnc=test2&id=4
Run Code Online (Sandbox Code Playgroud)

我想调用与'fnc'查询参数匹配的函数并将整个查询字符串传递给'vars'.

所以我想要的是以下"伪代码":

vars = cgi.FieldStorage()
print "Content-Type: text/html\n\n"
print eval('vars["fnc"].value(vars)')
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

python eval

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

用exec执行一段python代码,捕获它的所有输出?

执行一堆python代码的好方法是什么exec mycode,并将它打印到stdout的所有内容捕获到一个字符串中?

python io dynamic exec

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

是否可以删除除少数之外的所有会话变量?

是否可以删除除少数之外的所有会话变量?

我正在使用PHP,MySQL构建一个网站

php ajax jquery

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

如何创建允许取消选择实际选项的JToggleButton的ButtonGroup?

而已.我需要创建一个允许选择选项的ButtonGroup,或者,如果用户单击所选选项,则取消选择该项(不会选择任何内容),当然,捕获事件以执行某些操作.

java swing buttongroup

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