我在javascript中看到了一个最奇怪的东西.服务器端(弹簧):
@RequestMapping(value = "/foo", method = RequestMethod.GET)
@ResponseBody
public Long foo() {
return 793548328091516928L;
}
Run Code Online (Sandbox Code Playgroud)
我返回一个long值并且:
$.get('/foo').done(function(data){
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
它表示长整数为"793548328091516900",用0替换(确实舍入)最后两位数.当我从任何浏览器的地址栏发出GET请求时,数字表示正确; 因此,在我看来,这是一个js问题.
从服务器返回一个字符串而不是long,并使用以下方法处理它:
var x = new Number(data).toFixed();
Run Code Online (Sandbox Code Playgroud)
显然是解决方案.但我不是很幸运,我必须处理一个复杂的POJO(转换为JSON),其中某些字段(有些是嵌套的)是用java.lang.Long类型键入的.如果我尝试将此POJO转换为另一个对象没有字段键入Long,则显然很麻烦.
有更清楚的方法解决这个障碍吗?
如何检测用户是否正在切换到另一个浏览器选项卡?
目前,我有这个:
$(window).on("blur focus", function (e) {
var prevType = $(this).data("prevType");
if (prevType != e.type) { // reduce double fire issues
switch (e.type) {
case "blur":
$('.message').html('<div class="alert alert-error">Oops. You navigated away from the ads <a id="start" class="butt green">Resume</a></div>');
var myDiv = $("#bar");
myDiv.clearQueue();
myDiv.stop();
clearInterval($timer);
$timer = null;
break;
case "focus":
// do work
break;
}
}
$(this).data("prevType", e.type);
});
Run Code Online (Sandbox Code Playgroud)
但这仅在用户最小化活动窗口时才有效.
我需要创建一个JavaScript Promise,在特定条件为真之前无法解析.假设我有第三方库,我需要等到该库中存在某种数据条件.
我感兴趣的场景是除了简单的轮询之外无法知道何时满足这个条件的场景.
我可以创建一个等待它的承诺 - 这段代码可以工作,但有没有更好或更简洁的方法解决这个问题?
function ensureFooIsSet() {
return new Promise(function (resolve, reject) {
waitForFoo(resolve);
});
}
function waitForFoo(resolve) {
if (!lib.foo) {
setTimeout(waitForFoo.bind(this, resolve), 30);
} else {
resolve();
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
ensureFooIsSet().then(function(){
...
});
Run Code Online (Sandbox Code Playgroud)
我通常会实现最大轮询时间,但不希望这样在这里解决问题.
我模仿了一个库,并能够编写以下代码.此代码创建了分配功能的'c'对象'a'.所以,要打电话'a',我将不得不写c.a().
此外,我能够为此'c'对象添加更多功能.我想了解这段代码中发生了什么.它看起来不像普通的面向对象编程.这种类型的javascript编程叫什么?
var c = (function(c) {
if (c === undefined) {
c = {};
}
function a() {
alert(1);
}
c.a = a;
return c;
}(c));
Run Code Online (Sandbox Code Playgroud) 我可以在socket.io 0.9中使用此代码获取room的客户列表.
io.sockets.clients(roomName)
Run Code Online (Sandbox Code Playgroud)
我怎么能在socket.io 1.0中这样做?
我有这个结构:
const (
paragraph_hypothesis = 1<<iota
paragraph_attachment = 1<<iota
paragraph_menu = 1<<iota
)
type Paragraph struct {
Type int // paragraph_hypothesis or paragraph_attachment or paragraph_menu
}
Run Code Online (Sandbox Code Playgroud)
我想以Type依赖的方式显示我的段落.
我找到的唯一解决方案是基于专用函数,如isAttachment测试TypeGo和嵌套{{if}}:
{{range .Paragraphs}}
{{if .IsAttachment}}
-- attachement presentation code --
{{else}}{{if .IsMenu}}
-- menu --
{{else}}
-- default code --
{{end}}{{end}}
{{end}}
Run Code Online (Sandbox Code Playgroud)
事实上,我有更多类型,这使得它甚至更奇怪,使用IsSomething函数和带有函数的模板混乱{{end}}.
什么是干净的解决方案?go模板中是否有一些switch或if/elseif/else解决方案?还是以完全不同的方式处理这些案件?
我目前有一些运行window.open(urlWithGetParams)一行的代码.据我所知,这将迫使我使用GET请求.我想用POST请求来做这件事.这有解决方法吗?
我也没有结婚window.open().我愿意接受任何允许我通过POST请求而不是GET生成新窗口的替代方案.
我有一个html页面,当页面加载时打开一个弹出窗口.
我需要在页面第一次打开时设置弹出窗口.我认为会话或cookie是设置的.
<script>
!window.jQuery && document.write('<script src="fancybox/jquery-1.4.3.min.js"><\/script>');
</script>
<script type="text/javascript" src="fancybox/jquery.fancybox-1.3.4.pack.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("a#example1").fancybox();
$("a#example1").trigger('click');
});
</script>
<link rel="stylesheet" type="text/css" href="fancybox/jquery.fancybox-1.3.4.css" media="screen" />
</head>
<body>
<a id="example1" href="images/pic.jpg"></a>
</body>
Run Code Online (Sandbox Code Playgroud) 有没有办法将滚动条添加到'td'标签?我在'td'标签内有动态内容.我希望'td'具有固定大小,如果内容变得大于'td'大小,我希望滚动条仅出现在该特定单元格上.有没有办法实现这个目标?