在Firefox中解析(获取DOM树)XmlHttpRequest的HTML结果的最佳方法是什么?
编辑:
我没有 DOM树,我想获得它.
XmlHttpRequest的"responseXML"仅在结果是实际XML时起作用,所以我只有responseText才能使用.
innerHTML hack似乎不适用于完整的HTML文档(在<html> </ html>中). - 事实证明它工作正常.
我计划编写一个可在PC和Android上运行的Java 3D游戏.不幸的是,看起来两个平台都没有通用的OpenGL API.
API有很大不同吗?有没有办法可以在两个版本中使用相同的3D代码?这是个好主意吗?
我想拥有功能数据结构的优势(可以共享结构的多个数据版本),但能够以命令式方式修改它.
我正在考虑的(以及可能的用途):一个RPG游戏,其中存储了整个游戏历史(例如,允许回到过去).使用copy-on-write,我可以简单地克隆保持游戏状态的结构并通过引入新的转弯来修改它 - 但是可以访问较早的转弯(不一定是所有这些转弯,可能只是游戏状态的选定快照),而不是每次必须复制一切的惩罚.
让我们说foo是一张地图.
bar = foo.clone()
Run Code Online (Sandbox Code Playgroud)
没有任何foo结构(例如,树)被复制.但是,从现在开始,bar它被视为副本,并且不允许任何更改传播回`foo'.
baz = bar[someKey]
baz.modifyInSomeWay()
Run Code Online (Sandbox Code Playgroud)
现在
baz.bar用新地图替换,保留新的baz(可能保留一些foo结构).foo 不受影响.但如果我们那么做......
baz.modifyAgain()
Run Code Online (Sandbox Code Playgroud)
... baz可以修改,因为我们有最新版本的.bar
不需要改变.
所有这些都需要持有的一些版本信息foo和bar关于增加它foo.clone(),并把它传递给baz某种方式(通过使代理对象?).
此外,已克隆的结构的任何部分都成为"历史的一部分",不能再被更改,这可以在运行时强制执行.
这有点类似于JavaScript的原型,但我更多的是因为它允许更改向上传播.我认为它会像版本控制系统.
我正试图在我的小型1024x768屏幕上使Gmail的新外观可用 - 默认布局只留下一个小窗口的消息,被不动的元素包围.滚动那个小窗口非常烦人.
我已经成功地使整个页面滚动使用时尚的用户样式(修改后的版本这一个):
@-moz-document domain('mail.google.com'),
url-prefix('https://mail.google.com/mail') {
.akc.lKgBkb,
.oLaOvc.aeJ,
.lKgBkb.nH.oy8Mbf,
.lKgBkb.ajl.aib
{
height: auto !important;
overflow: hidden !important;
}
#canvas_frame { overflow-y: scroll; }
.l2 { padding-bottom: 20px !important; }
}
Run Code Online (Sandbox Code Playgroud)
应该具有滚动条的元素现在具有height: auto,并且滚动的是整个外部页面(in #canvas-frame)应该保持静态.
我对这种效果感到非常满意 - 它的效果几乎与旧的Gmail一样.但是,存在一个问题 - 用键盘滚动(箭头键,PgUp/PgDn,Home/End)停止工作.关于如何解决这个问题的任何想法?
我有一个管理员控制的功能(导入数据库),可能需要一些时间才能完成,所以我想在此期间向用户显示一些反馈 - 例如进度条,或者只是一些消息.即使在长时间操作期间分批发送页面也足够了.
在Django中最简单的方法是什么?
从我了解的Java NIO和无阻塞[服务器] SocketChannels,它应该是可以编写只使用一个线程维持几个连接的TCP服务器 - 我会作出这样的等待在服务器的循环中的所有相关频道的选择.
这是对的,还是我错过了一些重要的细节?我可以遇到什么问题?
(背景:TCP通信将用于小型多人游戏,因此最多可同时连接10-20个.每隔几秒就会发送一次消息.)
我有这样的HTML:
<!-- simulate a slow-loading request -->
<script src="http://example.com:81/non-existent-script.js"></script>
<script>
$(document).ready(function() { alert("ready"); })
</script>
Run Code Online (Sandbox Code Playgroud)
当我在Chrome中打开页面时,example.com请求应该挂起 - 但是当我点击F5时,会在页面刷新之前显示"就绪"警报.为什么会这样?如何区分这种情况(即页面加载期间刷新)和"正常"页面准备好了?
我正在用Java编写游戏,现在它是Swing + JOGL - 一个带有GLCanvas的JFrame.
我使用keyPressed等事件(jframe.addKeyListener(...))处理输入,它似乎无法正常工作:
我究竟做错了什么?
有没有更好的方法来处理Java中的键盘输入?
(我宁愿不切换到另一个库,比如LWJGL ......除非我别无选择).
当我尝试解析时 many p,我没有收到"期待p"消息:
> parse (many (char '.') >> eof) "" "a"
Left (line 1, column 1):
unexpected 'a'
expecting end of input
Run Code Online (Sandbox Code Playgroud)
相比于
> parse (sepBy (char '.') (char ',') >> eof) "" "a"
Left (line 1, column 1):
unexpected 'a'
expecting "." or end of input
Run Code Online (Sandbox Code Playgroud)
报告"." 正如我所料.many1 p <|> return []也有效.
所有这些函数都接受空输入,那么为什么不many报告它的期望呢?这是一个错误还是一个功能?
我希望能够异步等待套接字,然后同步读取它:
for (;;)
{
while (data available on socket)
{
read message from socket;
process it;
}
do something else;
}
Run Code Online (Sandbox Code Playgroud)
我需要这个,因为我想同时使用来自GUI的消息轮询队列,所以"做其他事情"部分有一个简短的wait().
这是可以使用Java套接字吗?我试图检查.available()在DataInputStream与套接字相关联,但
我尝试使用Selector进行此操作,但它要求套接字通道始终处于非阻塞模式.
java ×4
dom ×2
javascript ×2
sockets ×2
ajax ×1
android ×1
css ×1
django ×1
firefox ×1
haskell ×1
immutability ×1
jogl ×1
jquery ×1
nio ×1
opengl ×1
opengl-es ×1
parsec ×1
progress-bar ×1
python ×1
userscripts ×1