小编Pet*_*ter的帖子

在窗口关闭或页面刷新时运行JavaScript代码?

当用户关闭浏览器窗口或刷新页面时,有没有办法运行最终的JavaScript代码?

我正在考虑类似于onload的东西,但更像是onclose?谢谢.

我不喜欢onbeforeunload方法,它总是会弹出一个确认框(保留页面/停留在mozilla上)或(重新加载/不重新加载chrome).有没有办法安静地执行代码?

javascript browser

97
推荐指数
7
解决办法
20万
查看次数

使用Play Framework的缓存API在多语言网站中缓存操作

为了在给定的秒数内缓存每个标签和语言的操作,我编写了以下帮助器方法(其中label,是我给我的操作赋予的名称):

def cacheResponseFor(label: String, duration: Int)(action: EssentialAction) = { 
   Cached({r: RequestHeader => (label + getLanguage(r))}, duration){ action }
}

def getLanguage(request: RequestHeader): String = {
   request.cookies
     .get(helpers.SessionHelpers.LANGUAGE_SESSION)
        .map(_.value)
          .getOrElse(helpers.LanguageHelpers.FRENCH)
}
Run Code Online (Sandbox Code Playgroud)

但是我遇到了一些奇怪的事情,当我尝试缓存一个Action60秒并在此期间将语言切换为法语时,我会继续使用法语版本60秒然后切换到英语.

在调查之后,我发现getLanguage 在每次调用该操作时都不会调用该方法,就好像Key仅在缓存期结束后才进行评估.

这是不对的,我希望cacheResponseFor每当我请求我的页面时调用它,语言得到评估使用getLanguage,我得到正确的缓存版本,即我最终应该有2个缓存操作(每种语言一个).

我错过了什么吗?

scala playframework playframework-2.3 playframework-2.4

20
推荐指数
1
解决办法
554
查看次数

所有旅行时间的最小总和

我在interviewStreet网上找到了一个谜题,并尝试按如下方式解决:

有一个无限的整数网格,N人有他们的房子.他们决定团结在一个共同的聚会场所,这是一个人的家.从任何给定的小区,所有8个相邻小区在1个单位时间内可达.例如:(x,y)可以在一个单位时间内从(x-1,y + 1)到达.找到一个共同的聚会场所,最大限度地减少所有人的旅行时间总和.

我首先想到的是及时编写n²复杂度的解决方案,但约束条件是

1 <= N <= 10 ^ 5并且输入中每个坐标的绝对值将至多为10 ^ 9

所以,我改变了我的第一种方法,而不是考虑距离和旅行时间的问题,我把不同的房子看作不同的身体,不同的重量.而不是计算所有距离,我寻找这组物体的重心.

这是我的"求解"函数的代码,vectorToTreat是一个lengthX2表,存储有关网格上各点的所有数据,结果是打印到stdout的数字:

long long solve(long long** vectorToTreat, int length){
    long long resul = 0;
    int i;
    long long x=0;
    long long y=0;
    int tmpCur=-1;
    long long tmp=-1;
    for(i=0;i<length;i++){
        x+=vectorToTreat[i][0];
        y+=vectorToTreat[i][1];
    }
    x=x/length;
    y=y/length;
    tmp = max(absol(vectorToTreat[0][0]-x),absol(vectorToTreat[0][1]-y));
    tmpCur = 0;
    for(i=1;i<length;i++){
        if(max(absol(vectorToTreat[i][0]-x),absol(vectorToTreat[i][1]-y))<tmp){
            tmp = max(absol(vectorToTreat[i][0]-x),absol(vectorToTreat[i][1]-y));
            tmpCur = i;
        }
    }
    for(i=0;i<length;i++){
        if(i!=tmpCur)
            resul += max(absol(vectorToTreat[i][0]-vectorToTreat[tmpCur][0]),absol(vectorToTreat[i][1]-vectorToTreat[tmpCur][1]));
    }

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

现在的问题是我通过了12个官方测试案例超过13个,我看不出我做错了什么想法?提前致谢.AE

c algorithm

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

"关闭封闭范围/类"是什么意思?

Akka文档记录了使用的危险变体Props:

// NOT RECOMMENDED within another actor:
// encourages to close over enclosing class
val props7 = Props(new MyActor)
Run Code Online (Sandbox Code Playgroud)

然后继续说明:

不推荐使用这种方法,因为它鼓励以关闭在所述封闭的范围,导致不可序列道具和可能的竞争条件(断裂演员封装)被另一个演员内使用.

有人可以解释一下"关闭封闭范围"的含义吗?一直在寻找,一无所获.谢谢.

closures akka

15
推荐指数
2
解决办法
703
查看次数

从两个字符串中创建一个唯一的哈希

任何人都可以想到一种方法来从两个字符串中创建一个唯一的哈希?确保的东西:

hash(string1,string2) = hash(string2,string1).

我总是可以在地图中的两个不同值下存储相同的引用,但我想:必须有更好的方法......

algorithm scala

10
推荐指数
4
解决办法
4150
查看次数

如何在scala Play中启动代码!框架申请?

我需要执行一个代码,允许在应用程序启动时启动预定作业,我该怎么做?谢谢.

scala startup scheduled-tasks playframework-2.0

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

本地依赖关系由SBT解决,但不是由Play解决!骨架

我正在尝试使用banana-RDF,一个本地出版的图书馆(使用SBT发布publish-local)来自Play!框架项目,但是当compile从Play的控制台运行时,想要的库没有被解析,当compile从SBT的控制台使用时,一切都很顺利.

我发现这种行为非常奇怪,因为Play使用SBT来解决依赖关系.顺便说一下,我在我的Play项目中使用了0.12.3版本的SBT.

我在使用Play编译时遇到的错误非常基本:

[warn]  module not found: org.w3#banana_2.10;2013_02_21-SNAPSHOT            
[warn] ==== local: tried
[warn]   /home_local/.installedSoftware/play-2.1.1/repository/local/org.w3/banana_2.10/2013_02_21-SNAPSHOT/ivys/ivy.xml
[warn] ==== Typesafe Releases Repository: tried
[warn]   http://repo.typesafe.com/typesafe/releases/org/w3/banana_2.10/2013_02_21-SNAPSHOT/banana_2.10-2013_02_21-SNAPSHOT.pom
[warn] ==== Typesafe Snapshots Repository: tried
[warn]   http://repo.typesafe.com/typesafe/snapshots/org/w3/banana_2.10/2013_02_21-SNAPSHOT/banana_2.10-2013_02_21-SNAPSHOT.pom
[warn] ==== Akka Snapshots: tried
[warn]   http://repo.akka.io/snapshots/org/w3/banana_2.10/2013_02_21-SNAPSHOT/banana_2.10-2013_02_21-SNAPSHOT.pom
[warn] ==== OSS117: tried
[warn]   http://oss.sonatype.org/content/repositories/snapshots/org/w3/banana_2.10/2013_02_21-SNAPSHOT/banana_2.10-2013_02_21-SNAPSHOT.pom
[warn] ==== Local Maven Repository: tried
[warn]   file:///home_local/.m2/repository/org/w3/banana_2.10/2013_02_21-SNAPSHOT/banana_2.10-2013_02_21-SNAPSHOT.pom
[warn] ==== Local SBT Repository: tried
[warn]   file:///home_local/.ivy2/local/org/w3/banana_2.10/2013_02_21-SNAPSHOT/banana_2.10-2013_02_21-SNAPSHOT.pom
[warn] ==== public: tried
[warn]   http://repo1.maven.org/maven2/org/w3/banana_2.10/2013_02_21-SNAPSHOT/banana_2.10-2013_02_21-SNAPSHOT.pom
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释这里发生了什么?先感谢您.

dependencies scala sbt playframework-2.1

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

覆盖Predef的隐式转换

我有一个返回一个java.lang.Integer中,然后用隐Scala的PREDEF隐式转换转换为int多种方法,这里是它是如何写:

implicit def Integer2int(x: java.lang.Integer): Int = x.intValue
Run Code Online (Sandbox Code Playgroud)

这种转换对我来说并不令人满意,我想要的是:

implicit def Integer2int(x: java.lang.Integer): Int = 
  Option(x).getOrElse(new Integer(0)).intValue
Run Code Online (Sandbox Code Playgroud)

因为Integer有时可以null,在这种情况下,Predef的隐式转换也返回null,我希望它为0.

我编写了自己的转换但是我一直都会收到错误,因为它已经在Predef中声明了,所以这个声明是不明确的.

我的问题是,有没有办法真正覆盖Predef的隐式转换?

scala

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

为什么导入特定组件会导致捆绑包中的整个库?

我遵循从 react-bootstrap 导入单个组件的建议,就像这样import Container from "react-bootstrap/Container";。我已经验证了整个代码库,每个导入都是相同的。然而,当我分析捆绑包时,它表明 react-bootstrap 已被完整捆绑。

任何想法我可能会错过什么?

reactjs react-bootstrap

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

如何运行同一个Play的两个实例!框架申请?

我正在尝试运行同一个Play应用程序的两个实例,以便将来透明地升级应用程序.

当我启动第一个实例时,一切都很顺利.当我启动start 9525命令以在端口9525上启动应用程序的第二个实例时,我收到以下错误:

Play server process ID is 8909
This application is already running (Or delete .../RUNNING_PID file)
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?

playframework playframework-2.1

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