我只是想知道如果在执行ajax调用时,在浏览器窗口中向用户提示警报会发生什么.
比如说,我有一个ajax调用
$.ajax({
url: ...,
type: GET/POST,
...
success: function(data){
console.log(data);
},
error: ...
});
Run Code Online (Sandbox Code Playgroud)
这需要很长时间才能完成(10秒).在执行调用时,会抛出一个简单的javascript警报
alert("hello!");
Run Code Online (Sandbox Code Playgroud)
例如,如果:
知道JS是单线程的我知道脚本执行将停止,我只是想知道如果警报窗口没有"及时"关闭,ajax调用/响应会发生什么.
我希望我足够清楚,这不是一个"虚假"的问题.谢谢
我们刚刚召开会议来解决用于计算保险费率的Web应用程序中的一些性能问题.计算在C/C++模块中实现,该模块也用于其他软件包.为了使其可用作Web服务,实现了一个Java包装器,它公开了一个基于XML的接口,并通过JNI调用C/C++模块.
测量表明,Java部分内的每次计算花费了几秒钟.所以我的第一次重新启动是在VM中启用垃圾收集日志记录.我们可以立刻看到许多世界上完整的GC已经完成.谈到这一点,java部分的开发人员告诉我们他们曾经System.gc()多次"确保在使用后释放内存".
好的,我不会再详细说明这个陈述...... ;-)
然后我们在上面添加-XX:+DisableExplicitGC了VMs参数并重新进行了测试.每次计算大约增加5秒.
由于我们无法System.gc()在发布过程中通过剥离所有这些调用来更改代码,因此我们正在考虑添加-XX:+DisableExplicitGC生产,直到可以创建新的Jar.
现在的问题是:这样做会有风险吗?关于我唯一能想到的是System.gc()重新部署时内部使用tomcat ,但这只是猜测.还有其他危险吗?
new File("")并new File(".")产生相同的规范路径,但前一个对象是不可保存的.考虑下面的代码,以及两个对象如何返回相同的规范路径.文档说明规范路径"既绝对又独特".但只有用"."创建的文件.参数实际上是可用的.
不应该在某个时候抛出异常吗?在空字符串构造函数调用中(因为创建的对象似乎没有效果),或者至少在getCanonicalPath中(至少声明IOException)?
import java.io.File;
import java.io.IOException;
public abstract class Test {
public static void main(String[] args) throws Exception {
testFile("");
testFile(".");
}
private static void testFile(String arg) throws IOException {
System.out.format("File constructor argument: \"%s\"\n", arg);
File g = new File(arg);
System.out.format("toString() = \"%s\"\n", g.toString());
System.out.format("getAbsolutePath() = \"%s\"\n", g.getAbsolutePath());
System.out.format("getAbsoluteFile() = \"%s\"\n", g.getAbsoluteFile());
System.out.format("getgetCanonicalPath() = \"%s\"\n", g.getCanonicalPath());
System.out.format("getgetCanonicalFile() = \"%s\"\n", g.getCanonicalFile());
System.out.format("exists() = %s\n", g.exists());
System.out.format("isDirectory() = %s\n", g.isDirectory());
System.out.println();
}
}
Run Code Online (Sandbox Code Playgroud)
它产生的输出:
File …Run Code Online (Sandbox Code Playgroud) 有没有办法按照声明的顺序使用反射获取类声明的字段(和方法)?根据该文件,方法和字段的顺序返回的getFields(),getDeclaredFields()等是不确定的.
使用Java反射中建议的注释可以指定像索引之类的东西:类字段和方法的顺序是否标准化?
有没有更好的选择,即不必手动指定索引?
现在在你问我需要什么之前:我们有一个方法,它将一个非常大的数据结构作为输入,并对其进行冗长的计算.为了创建单元测试,我们创建了一个方法,该方法接受输入对象和输出实例,并创建Java源代码(设置输入,调用计算方法,然后断言正确的结果)作为输出.当字段按声明顺序编写时,此代码更易读.
我有一个包含不同枚举(不同类型)的类.该类用作a的键HashMap.hashCode类目前实现如下:
public static class Key implements Comparable<Key> {
final int a;
final Enum1 enum1;
final Enum2 enum2;
@Override
public int hashCode() {
return a ^ enum1.hashCode() ^ enum2.hashCode();
}
// ... definition of equals and toString ...
}
Run Code Online (Sandbox Code Playgroud)
现在,如果枚举hashCode只返回枚举定义中枚举值的索引,这将不是最佳的(太多冲突).方法定义Enum.hashCode()是这样的:
/**
* Returns a hash code for this enum constant.
*
* @return a hash code for this enum constant.
*/
public final int hashCode() {
return super.hashCode();
}
Run Code Online (Sandbox Code Playgroud)
假设这个委托Object.hashCode(),一切都应该没问题,因为每个枚举常量只存在一个实例,Object.hashCode()理论上就是从对象的内部地址派生的整数.我对吗?
PS:当在键中多次使用相同的枚举时,你将不得不使用更复杂的东西.
我无法匹配时,通过使用所获得的含有换行符换行符字符串%n在Formatter对象或String.format().请看下面的程序:
public class RegExTest {
public static void main(String[] args) {
String input1 = String.format("Hallo\nnext line");
String input2 = String.format("Hallo%nnext line");
String pattern = ".*[\n\r].*";
System.out.println(input1+": "+input1.matches(pattern));
System.out.println(input2+": "+input2.matches(pattern));
}
}
Run Code Online (Sandbox Code Playgroud)
及其输出:
Hallo
next line: true
Hallo
next line: false
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?为什么第二个字符串不匹配?
Java版本是1.6.0_21.
我只是做了一个小代码更改来沉默FindBugs警告,该警告需要将一些代码移动到匿名内部类.为了访问一些变量,我不得不将它们声明为final.所以这是更改后的代码片段:
final File[] libPath; // libPath is final but assignment takes place later
if (libraryPath != null) {
libPath = pathToFiles(libraryPath);
} else {
libPath = new File[0];
}
Run Code Online (Sandbox Code Playgroud)
这在当前Eclipse(版本3.7.1)中使用设置为Java 6的语言编译得很好.但是我很确定这曾经在某些先前版本中出错.似乎编译器在确定存在时接受此构造.
我的问题是:这在Java 6中是否合法,或者由于Java 7支持的副作用被添加到eclipse 3.7.1中,它现在是否可行?我们已经看到了这些副作用,其中某些泛型的使用在3.7.1中有效但在3.7.0中没有编译.
一位同事检查了这段代码:
Number n = ...;
double nr = n == null ? 0.0 : (double) n;
Run Code Online (Sandbox Code Playgroud)
然后另一位同事抱怨说这没有编译,这就是我所期待的.然而,事实证明我已经从SVN中提取了这些代码并且一切正常.我们都在eclipse中将Java版本设置为1.7,结果证明代码在eclipse 4.4.2(Luna)下编译得很好但在4.2.2下失败了.
我通过替换演员来解决问题n.doubleValue().
现在的实际问题是:为什么这首先被接受了?它当然应该工作的铸造时Double的代替double,但我认为,从直接投Number给double被判无效.那么,这是eclipse 4.2.2中的一个错误,在此期间修复了,或者eclipse 4.4.2是否默默接受不应该编译的代码(恕我直言,这将是一个错误)?
这令人惊讶:我能够用该名称声明一个变量,record即使它现在已成为关键字。看看这个:
public class Main {
static class Foo {
void bar() { System.out.println("Foo.bar"); }
}
record R (int a) {}
public static void main(String[] args) {
Foo record = new Foo();
record.bar();
R r = new R(5);
System.out.println(r);
}
}
Run Code Online (Sandbox Code Playgroud)
当使用 Java 17 编译并运行时,会给出:
Foo.bar
R[a=5]
Run Code Online (Sandbox Code Playgroud)
我原以为这会导致错误,就像尝试声明名为 的变量时的情况一样class。据我所知,Java 人员非常小心,不破坏现有代码,因此我认为这可能是一个经过深思熟虑的选择。
(你甚至不能声明一个名为 name 的变量,const因为它const 是Java 中的关键字。)
问题背景:我正在使用katex在页面上渲染一些数学。然后,我想创建该页面一部分的PDF版本,因此我创建了一个HTML文档,其中包含要导出的部分,它内联了所有CSS并将其传递给渲染器。渲染器无法访问节点资源,这就是内联所有内容的原因。除字体外,它运行完美。
我同时尝试了url-loader和bas64-inline-loader,但是生成的字体没有内联。我在调试器中检查了生成的CSS,旧的URL仍然存在,没有字体的data-URL。
这是我当前的webpack.config.js:
const path = require('path');
const {CleanWebpackPlugin} = require('clean-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
mode: 'development',
entry: {
"editor": './src/editor.js',
"editor.worker": 'monaco-editor/esm/vs/editor/editor.worker.js',
"json.worker": 'monaco-editor/esm/vs/language/json/json.worker',
"css.worker": 'monaco-editor/esm/vs/language/css/css.worker',
"html.worker": 'monaco-editor/esm/vs/language/html/html.worker',
"ts.worker": 'monaco-editor/esm/vs/language/typescript/ts.worker',
},
output: {
globalObject: 'self',
filename: '[name].bundle.js',
path: path.resolve(__dirname, 'dist')
},
module: {
rules: [
{
test: /\.(woff|woff2|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,
use: ['url-loader']
},
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
}
]
},
plugins: [
new CleanWebpackPlugin(),
new HtmlWebpackPlugin({
filename: 'editor_text.html',
template: 'src/editor_text.html'
}),
new HtmlWebpackPlugin({
filename: 'editor_markdown.html',
template: …Run Code Online (Sandbox Code Playgroud)