标签: execution

暂停JavaScript执行而不锁定浏览器

您是否能够在不锁定浏览器的情况下暂停JavaScript执行?通常停止执行的方式是执行无限while()循环,但在FireFox的情况下,它会锁定浏览器,直到循环结束.

你对此有何看法?


我试图覆盖window.confirm()使用HTML实现我自己的对话框.我这样做,所以我不必更改现有的代码(这是一个非常大的代码库).

我需要能够暂停执行以允许用户输入; 反过来返回一个像标准确认函数那样的布尔值:

if (confirm("..."))
{
    // user pressed "OK"
}
else
{
    // user pressed "Cancel"
}
Run Code Online (Sandbox Code Playgroud)



更新

据我所知; 这不能使用setTimeout()setInterval()因为这些函数执行异步给出的代码.

javascript execution

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

避免PHP执行时间限制

我需要用PHP语言创建一个执行数字排列的脚本.但PHP的执行时间限制设置为60秒.如何运行脚本,以便运行超过60个sesunde,而不是被服务器中断.我知道我可以在php中更改最大执行时间限制,但我想听到另一个版本,它不需要事先知道脚本的执行时间.

一位朋友建议我登录并经常从服务器注销,但我不知道如何做到这一点.

欢迎任何建议.示例代码很有用.

谢谢.

首先我需要输入一个数字,比如说25.此后脚本启动并需要执行以下操作:对于每个<= 25的数字,它将创建一个文件,其中包含当前阶段生成的数字; 对于下一个数字,它将打开previuos创建的文件,并将在打开的文件的行上创建另一个文件,依此类推.因为这需要很长时间,我需要避免服务器破坏脚本.

php time execution limit

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

比较不同输入下相同代码的执行路径

我正在调试一个非常复杂的C++函数,它在某些输入下给了我一些意想不到的结果.我想比较不同输入下的代码执行,以便找出导致我错误的部分.我正在寻找可以比较代码执行路径工具.如果存在这样的工具,请告诉我.或者,如果有一些技巧我可以用来做同样的事情?

为了具体地描述我的问题,我在这里使用一个人为的例子.

假设这是伪代码中的函数,

double payTax(double income)
{
   if (income < 10000)
      return noTax();
   else if ( 10000 < income < 30000)
      return levelOneTax();
   else if (30000 < income < 48000)
      return levelTwoTax();
   else  
      return levelThreeAboveTax();
}
Run Code Online (Sandbox Code Playgroud)

给定输入15000,该函数计算正确的税额,但不知何故输入16000给出错误的税额.据推测,输入15000和16000会导致函数完全执行相同的执行路径; 另一方面,如果它们走的是不同的路径,那么功能中的某些东西一定出错了.因此,比较执行路径的工具会显示足够的信息,可以帮助我快速识别错误.我正在寻找这样一个工具.最好与Visual Studio 2010兼容.如果这样的工具还保留变量值,那就更好了.

PS调试是我想要做的最后一件事,因为我正在使用的代码库比简单的payTax示例更大更复杂.

请帮忙.谢谢.

c++ execution

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

boost :: signals插槽是同步还是异步调用的?

任何人都可以告诉我boost::signals同步或异步调用的插槽吗?

例如,我有这段代码:

struct Hello
{
  void operator()() const
  {
    std::cout << "Hello ";
  }
};

struct World
{
  void operator()() const
  {
    std::cout << " world!" << std::endl;
  }
};

boost::signal<void ()> sig;

sig.connect(Hello());
sig.connect(World());

sig();

cout << "Foo";
Run Code Online (Sandbox Code Playgroud)

执行线程如何工作?执行是等待Hello()还是World()执行,之后"Foo"是打印还是异步调用它们(打印"Foo"并以未定义的顺序调用Hello()World()执行)?

c++ boost asynchronous execution boost-signals

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

if语句是否保证不被评估超过必要?

给出两个&&连接条件.我知道评估的顺序是从左到右.但是如果第一个条件解析为false,那么第二个条件保证不会被评估?

#define SIZE
bool array[SIZE];
int index;

// play with variables
// ...

if(index < SIZE && array[index])
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

在此示例中,如果第一个条件为false,则不能评估第二个条件,因为数组中的访问将超出范围.

顺便说一句,我不能简单地用两个if语句嵌套条件,因为实际上我需要反向像(!(in_range && get_element)).使用嵌套语句,我需要用goto它跳过下面的代码块.

c++ if-statement execution boolean-expression operator-precedence

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

在这种传入方法调用和参数的情况下,是否保证Java评估顺序

我在JLS 15.7.415.12.4.2上做了一些阅读,但它并不能保证不会有任何编译器/运行时优化改变评估方法参数的顺序.

假设以下代码:

public static void main (String[] args) {
  MyObject obj = new MyObject();
  methodRelyingOnEvalOrder(obj, obj.myMethod());
}

public static Object methodRelyingOnEvalOrder(MyObject obj, Object input) {
  if (obj.myBoolean())
    return null;
  else
    return input;
}
Run Code Online (Sandbox Code Playgroud)

是否保证编译器或运行时不会进行错误优化,如下所示?这种优化可能看起来是正确的,但是当评估顺序很重要时,这是错误的.

在调用obj.myMethod改变将返回的值的情况下,首先调用obj.myBoolean是至关重要的,obj.myMethod因为methodRelyingOnEvalOrder需要首先进行此更改.

//*******************************
//Unwanted optimization possible:
//*******************************
public static void main (String[] args) {
  MyObject obj = new MyObject();
  methodRelyingOnEvalOrder(obj);
}

public static Object methodRelyingOnEvalOrder(MyObject obj) {
  if (obj.myBoolean()) …
Run Code Online (Sandbox Code Playgroud)

java runtime execution operator-precedence compiler-optimization

6
推荐指数
2
解决办法
1939
查看次数

PHP max_execution_time的确切含义

短语"最大执行时间"是不明确的:它可能意味着(A),因为脚本启动消耗的时间,或通过脚本(包括或不包括操作系统调用所采取的CPUTIME)(b)采取总CPUTIME.

kuba这里非常有趣的帖子这里有关于Linux的PHP的真实max_execution_time,发现这取决于PHP是在Unix还是在Windows上运行.从本质上讲,他发现在Unix上它是(b)而在Windows或Cygwin上它是(a).

但是,我的服务器是Linux的2.6.32-358.18.1.el6.x86_64#1 SMP x86_64的x86_64的x86_64的GNU/Linux和我有被经过的时间正好30秒后轮回一圈的cron作业,尽管它的CPU时间小于16秒:

[Tuesday, 10-Dec-2013 10:22:33 GMT] Begin, cputime=0 secs.
[Tuesday, 10-Dec-2013 10:22:58 GMT] starting zip_close, cputime=10.12946 secs.
[10-Dec-2013 10:23:03 UTC] PHP Fatal error:  Maximum execution time of 30 seconds exceeded in xxx.php on line 149
Run Code Online (Sandbox Code Playgroud)

这与库巴的发现相矛盾.我的是PHP 5.3.26和IU'm测量cpu时间:

function cputime() {
    $data = getrusage();
    return $data['ru_utime.tv_sec'] + $data['ru_utime.tv_usec'] / 1000000;
Run Code Online (Sandbox Code Playgroud)

谁能进一步澄清?

php unix time max execution

6
推荐指数
2
解决办法
1318
查看次数

回答PHP中命令行上运行的程序提出的问题

我想知道如何与我在命令行PHP脚本中运行的程序进行交互.场景是:

  1. 开始执行程序.
  2. 阅读输出直到询问问题(通过阅读STDOUT我猜).
  3. 输入答案并按Enter键(我猜是写STDIN).用户不要输入它,脚本已经知道通过读取和解释步骤2的输出来回答什么.
  4. 再次阅读输出,直到询问新问题.
  5. 再次键入答案,然后按Enter键.同样,脚本知道这一切,不会发生任何用户输入.
  6. 此问题/答案方案重复x次,直到程序结束.

如何编写执行此操作的PHP脚本?我想我可能想用,proc_open()但我无法弄清楚如何.我认为它会是这样的,但它当然不起作用:

$descriptorspec = array(
    0 => array('pipe', 'r'),  //STDIN
    1 => array('pipe', 'w'),  //STDOUT
    2 => array('pipe', 'r'),  //STDERR
);
$process = proc_open('mycommand', $descriptorspec, $pipes, null, null);
if (is_resource($process)) {
    // Get output until first question is asked
    while ($buffer = fgets($pipes[1])) {
        echo $buffer;
    }
    if (strpos($buffer, 'STEP 1:') !== false) {
        fwrite($pipes[0], "My first answer\n");  //enter the answer
    } else {
        die('Unexpected last line before question');
    }

    // Get …
Run Code Online (Sandbox Code Playgroud)

php command-line-interface execution

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

如何在 Visual Studio 中编译项目而不在构建后运行?

如何在 Visual Studio 中编译项目而不在构建后运行?我正在编译一个 dll 扩展,但 Visual Studio 正在尝试运行它(不方便),然后发生错误。我可以避免这种运行吗?

dll build project execution visual-studio

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

在子类中执行Java静态块

我正准备自己进行Java认证测试,我发现了一个与Java静态块执行相关的有趣问题.我花了很多时间阅读这个主题,但我找不到我想要的答案.

我知道当类被加载到JVM中或者调用main方法时会执行静态块,但是......

package oneClassTasks;

class Parent {
    static int age;
}

class Child extends Parent {
    static {
        age = 5;
        System.out.println("child's static block");
    }
}

public class XXX {

    public static void main(String args[]) {
        System.out.println("Child age is : "+ Child.age);
    }

}
Run Code Online (Sandbox Code Playgroud)

输出是:

Child age is : 0
Run Code Online (Sandbox Code Playgroud)

如果我包含详细输出-verbose:class,则输出为:

...
[Loaded java.security.BasicPermissionCollection from C:\Program Files\Java\jre1.8.0_161\lib\rt.jar]
[Loaded oneClassTasks.XXX from file:/D:/temp/bin/]
[Loaded sun.launcher.LauncherHelper$FXHelper from C:\Program Files\Java\jre1.8.0_161\lib\rt.jar]
[Loaded java.lang.Class$MethodArray from C:\Program Files\Java\jre1.8.0_161\lib\rt.jar]
[Loaded java.lang.Void from C:\Program Files\Java\jre1.8.0_161\lib\rt.jar]
[Loaded oneClassTasks.Parent …
Run Code Online (Sandbox Code Playgroud)

java static jvm execution

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