问题列表 - 第38936页

当在if()或try {} catch(e){}中时,为什么const在多次运行代码时抛出错误?

我正在尝试使用声明一堆常量const。我的问题是,在Firebug控制台中测试代码会引发错误,抱怨“ const foo的重新声明”。

我尝试将其包装在一个 try{}catch(e){}块中,但这无济于事,即使尝试使用以下代码来解决它(张贴减去所有console.info()“调试”的调用以求清楚),它仍然会引发错误第二次运行时:

if(!chk_constsDeclaredYet) {
  var chk_constsDeclaredYet = true;
  const foo="bar";
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,当const位于if(){}中时,当第二次运行代码时,为什么还要查看const foo?

注意:代码将在firebug javascript控制台中运行,而我想要实现的工作流程是:

  1. 将代码粘贴到Firebug控制台中
  2. 命中运行(创建常量)
  3. 我在不重新加载页面的情况下对控制台中的代码进行了编辑(常量仍在页面上下文中定义)
  4. 再次命中运行(使用if(){}以避免在前一次运行已声明常量的情况下重新声明常量)
  5. 从(3)重复

萤火虫输出:

//FIRST RUN::
>>> console.group() console.info('--code start--'); ...console.info('--code end--'); console.groupEnd()
--code start--
chk_constsDeclaredYet = undefined
foo = undefined
--if()--
--if() running..--
--end if()--
chk_constsDeclaredYet = true
foo = bar
--code end--

//SECOND RUN::
>>> console.group() console.info('--code start--'); ...console.info('--code end--'); console.groupEnd()
TypeError: redeclaration of const foo { message="redeclaration of const foo", more...}
Run Code Online (Sandbox Code Playgroud)

javascript firebug const constants

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

十进制到二进制转换

我想将十进制数转换为二进制数.我想将它们存储在一个数组中.首先,我需要创建一个具有一定长度的数组,以便我可以存储二进制数.之后我执行转换,这是我如何做到的:

public class Aufg3 {
    public static void main(String[] args) {
        int[] test = decToBin(12, getBinArray(12));
        for(int i = 0; i < test.length; i++){
            System.out.println(test[i]);
        }
    }

    public static int[] getBinArray(int number){
        int res = number, length = 0;
        while(res != 0){        
            res /= 2;
                    length++;
        }
        return new int[length];
    }

    public static int[] decToBin(int number, int[] array){
        int res = number, k = array.length-1;
        while(res != 0){
            if(res%2 == 0){
                array[k] = 0;
            }else{
                array[k] = 1;
            }
            k--; …
Run Code Online (Sandbox Code Playgroud)

java arrays binary decimal base-conversion

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

我如何在 C# 中实现类似 JavaScript 的 setTimeout 之类的东西?

我有一个 C# 应用程序,它从服务器接收更新、处理它并更新 GUI。更新不断进来,每秒说几次。我希望应用程序最多每 2 秒更新一次 GUI。因此,如果更新在时间 T 到来,我希望从 T 到 T+2sec 的所有更新都保留在缓冲区中,并在 T+2sec 进行处理和 GUI 更新。我知道在 JS 中你可以使用 setTimeout() 在未来的某个时间执行一些代码,所以我想要这样的东西。

这样做的合适方法是什么?我听说使用线程来“调度”函数调用并不是一个好主意,但我不确定是否有更好的方法来做到这一点。使用一个间隔两秒的计时器,与 GUI 线程同步,进行处理/更新会不会很糟糕?

c# settimeout

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

使用Cookies的C#WebRequest

我有一个winforms应用程序,我一直在努力对消费者帐户进行多项测试.测试需要一次登录才能执行.

string paramaters = "authmethod=on&chkRememberMe=on&login-form-type=pwd&password=" + pw.Text + "&userid=" + uid.Text + "&username=" + uid.Text;
        string strResponse;
        HttpWebRequest requestLogin = (HttpWebRequest)WebRequest.Create("https://www.url.com/login.form");
        requestLogin.Method = "POST";
        requestLogin.CookieContainer = cookieJar;
        requestLogin.ContentType = "application/x-www-form-urlencoded";

        requestLogin.ContentLength = paramaters.Length;
        StreamWriter stOut = new StreamWriter(requestLogin.GetRequestStream(), System.Text.Encoding.ASCII);
        stOut.Write(paramaters);
        stOut.Close();

        StreamReader stIn = new StreamReader(requestLogin.GetResponse().GetResponseStream());
        strResponse = stIn.ReadToEnd();
        stIn.Close();
Run Code Online (Sandbox Code Playgroud)

这个脚本适用于登录就好了,问题是当我需要实际运行测试时我需要将所有结果都返回到一个字符串中(HTML结果).

private string runTestRequest(Uri url, string parameters)
    {
        string testResults = string.Empty;
        HttpWebRequest runTest = (HttpWebRequest)WebRequest.Create(url);
        runTest.CookieContainer = cookieJar;
        runTest.Method = "POST";
        runTest.ContentType = "application/x-www-form-urlencoded";
        StreamWriter stOut = new StreamWriter(runTest.GetRequestStream(), …
Run Code Online (Sandbox Code Playgroud)

c# cookies webrequest winforms

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

不应该调用MPMoviePlayerPlaybackDidFinishNotification

根据Apple的MPMoviePlayerController doc:

MPMoviePlayerPlaybackDidFinishNotification - 如果电影播放器​​以全屏模式显示并且用户点击完成按钮,则不会发送此通知.

在我看来,这是错误的.使用下面的代码,当我点击完成按钮时,会调用pl​​ayerPlaybackDidFinish.

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerPlaybackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:self.player];

- (void) playerPlaybackDidFinish:(NSNotification*)notification
{
    NSLog(@"WHY?");
    self.player.fullscreen = NO;
}
Run Code Online (Sandbox Code Playgroud)

我需要区分用户点击完成按钮和电影完成整个播放.当电影结束时,playerPlaybackDidFinish会被调用,但就像我说的那样,当你点击Done时它也会被调用.

iphone mpmovieplayercontroller ipad

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

我的cronjob无法正常工作?

也许是一个愚蠢的问题,但我正试图让一个cronjob工作.虽然这可能是服务器故障的问题,但我认为它也是一个SO问题.

无论如何:我已经设置了一个cronjob,每小时,每天(数字),日期(名称)和月份执行1分钟.给定的命令是:/home/easybr01/domains/easybranding.nl/public_html/cronjobs/test.php

这只不过是一个带有simpe php函数的文件mail(to, subj, content, hdrs)来测试它是否有效...但是邮件永远不会进来..而且它们不在垃圾邮件文件夹中.

有人知道什么是错的吗?我认为这应该是非常直接的......

php cron

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

Tomcat上下文管理

http://tomcat.apache.org/tomcat-6.0-doc/config/context.html上的tomcat 6.0文档说:

仅当应用程序中不存在应用程序$CATALINA_BASE/conf/[enginename]/[hostname]/文件/META-INF/context.xml内的单个文件中的上下文文件时.如果Web应用程序打包为WAR,/META-INF/context.xml则将复制并重$CATALINA_BASE/conf/[enginename]/[hostname]/命名以匹配应用程序的上下文路径.一旦此文件存在,如果/META-INF/context.xml在主机的appBase中放置了一个带有较新版本的新WAR,则不会替换它.

不过我注意到,如果你在webapp目录提出了新的战争的文件中,context.xmlMETA-INF目录取代context.xml$CATALINA_BASE/conf/[enginename]/[hostname].

是否有任何配置可确保context.xml$CATALINA_BASE/conf/[enginename]/[hostname]/部署新war文件时不会覆盖in .

编辑:我正在使用autodeploy ="true"从JoseK的评论中,我了解当tomcat看到新的war文件时,它会取消使用旧的应用程序(导致删除上下文文件)并部署新的war文件(导致创建新的战争文件).在这种情况下,tomcat文档中的上述信息不是相关的.新问题是否可能出现以上情况?

java tomcat

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

E_NOTICE?== E_DEBUG,避免使用更复杂的error_handler的isset()和@

有哪些更好的方法可以避免isset()应用程序逻辑中的大量内容,并且需要保留查看调试消息(E_NOTICE)的能力?

首先推定:E_NOTICE不是错误,它是用词不当,实际上应该是E_DEBUG.然而,虽然这对于未设置的变量(PHP仍然是脚本语言)是正确的,但是一些文件系统函数等也会抛出它们.因此,需要开发 E_NOTICEs.

然而,并非所有调试通知都是有用的,这就是为什么在整个应用程序逻辑中引入isset()和@ 是一个常见的(不幸的)PHP习惯.isset/empty肯定有很多有效的用例,但总的来说它似乎是语法盐,实际上可能阻碍调试.

这就是我目前使用error_reporting书签和哑开/关开关的原因:

// javascript:(function(){document.cookie=(document.cookie.match(/error_reporting=1/)?'error_reporting=0':'error_reporting=1')})()

if (($_SERVER["REMOTE_ADDR"] == "127.0.0.1")
    and $_COOKIE["error_reporting"])
{
    error_reporting(E_ALL|E_STRICT);
}
else {/* less */}
Run Code Online (Sandbox Code Playgroud)

然而,这仍然让我有一个问题,即一旦启用就有太多通知来搜索.作为解决方法,我可以使用@ error suppress运算符.与isset()不同,它不会完全终止调试选项,因为自定义错误处理程序仍然可以接收抑制的E_NOTICE.因此,将预期的调试通知与潜在问题分开可能会有所帮助.

然而,这同样令人不满意.因此问题.有没有人使用或知道更复杂的PHP错误处理程序.我在想象:

  • 输出未过滤的错误/警告/通知(使用CSS绝对定位?)
  • 和AJAX-whatnot允许客户端检查和抑制
  • 但也保存了预期和" 已批准 "通知或警告的过滤列表.

当然,某些框架必须已经有这样的用户错误处理程序.

  • 基本上我对警告/通知管理很感兴趣.
  • 完全没有E_NOTICE抑制.
  • E_NOTICES 通缉.只是少了一些.默认情况下突出显示我可能关心的,而不是预期的.
  • 如果我在没有?order =参数的情况下运行,则会出现预期的NOTICE.由于预期,我不需要多次通知.
  • 但是,当处于完全调试模式时,我希望通过所述调试通知的存在(或更有趣的缺失)来看到存在未定义的变量. - >这就是我认为它们的用途.避免使用isset带来语言隐含的打印语句.
  • 还要意识到这是关于普通PHP表单处理语义适用的用例,而不是严格必须的应用程序区域.

哦,我有人请帮助改写这个.冗长的解释失败了.

php error-reporting

11
推荐指数
3
解决办法
1291
查看次数

超时时终止或终止子进程?

我想尽快重复执行一个子进程.但是,有时这个过程需要很长时间,所以我想杀掉它.我使用signal.signal(...)如下所示:

ppid=pipeexe.pid
signal.signal(signal.SIGALRM, stop_handler)

signal.alarm(1)
.....
def stop_handler(signal, frame):
    print 'Stop test'+testdir+'for time out'
    if(pipeexe.poll()==None and hasattr(signal, "SIGKILL")):
         os.kill(ppid, signal.SIGKILL)
         return False
Run Code Online (Sandbox Code Playgroud)

但有时这段代码会试图阻止下一轮执行.停止测试/ home/lu/workspace/152/treefit/test2for time out/bin/sh:/ home/lu/workspace/153/squib_driver:not found ---这是下一次执行; 该程序错误地阻止它.

有谁知道如何解决这个问题?我想及时停止不执行1秒钟.sleep(n)经常等待n秒.我不希望我希望它可以执行不到1秒

python subprocess signals timeout kill

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

PHP money_format

我正在使用money_format第一个参数'%n'包含美元符号,我将区域设置设置为en_US但它仍然不包括它.为什么?

php string locale string-formatting money-format

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