2

我希望初学者的问题是可以接受的。我不介意学习,但根据迄今为止的研究,我什至不知道从哪里开始......

我需要一个可以适应小型 URI 空间(大约 1,000 个字符或更少)的脚本,该脚本将使用服务器脚本解析的信息(由 http 上的 meta-verse 对象提供的 lsl/mono)快速更新自身。

目标浏览器是 Second Life 查看器(基于 Mozilla)的内置媒体查看器。解析的 html 将来自 LSL/mono 脚本。我正在尝试以 0.2 到 0.5 秒的更新分辨率在 Second Life 元节中的图元上显示生成的 html(基本上只是将 prim 面变成一种 UV 投影浏览器窗口)。

我收集到我需要类似 ajax 的东西来不断 ping 服务对象以获取刷新的动态信息并更新初始 URI 中的部分?我不知道如何设置它。

已经尝试过:我尝试简单地将我的一小部分 html 放在 URI 本身中,并让 meta-verse 的 mono/lsl 脚本强制浏览器更新,这在某种程度上有效,但通过这样的脚本强制媒体刷新是节流到大约 2 秒的可靠刷新分辨率。我真的需要完全在客户端进行刷新……分辨率大约为 0.2 秒,因为该信息用于更新移动车辆的数字仪表板。

已经尝试过:仅在 URI 中使用基于元的刷新。要么我做错了,要么就是没用。这样的方法会支持不到一秒的分辨率吗?

还尝试使用来自该网站的关于 ajax 的脚本示例,虽然它们提供了很好的示例代码,但它们没有显示如何在浏览器中设置标题等以使用他们所说的任何库(假设在这些线程的级别,读者知道他们在谈论什么库以及如何设置它们)......所以目前这些都不适合我。

服务器脚本会解析一些简单的动态刷新的 html 格式文本。它可以在每次刷新时都被转储到单个 div 区域中。

需要快速解析的html示例:

<body bgcolor="black">
<font size="7" color="cyan"><center>
Throttle: 50%<br>
Speed: 40<br>
Bearing: 100, 100, 1000<hr="red">
HP: 200 - Kills: 3<br>
Damage Dealt: 1000
</center></body>

或者,如果它更有效,它可以作为更高级脚本的简单变量更新转储,该脚本只更改表中的“数字”?但我也不知道该怎么做。

我想我对如何让服务器端脚本解析我希望显示的所需 html 有很好的理解。我完全不知道如何设置一个 URI,它每 0.2 秒从客户端请求一次......并避免从“缓存”而不是实际的目标 url 中提取该信息。

4

1 回答 1

0

如果正确解释问题,请尝试使用XMLHttpRequest

var js = 'data:text/html;charset=utf-8,<html><script>(function r(){var x=new XMLHttpRequest();x.open("GET","https://gist.githubusercontent.com/anonymous/27e432abdb3c506aaa04/raw/109eb3da644a4bbc4aaa4d10ed286471a31b9655/update.html",true);x.onload=function(){document.write(x.responseText);setTimeout(function(){console.log(r)},200)};x.send()}())</script></html>';

431 个字符

// note, `console.log(r)` called at `x.onload` instead of `r()` , 
// at stacksnippets ; to prevent recursive call to `r` , multiple requests , here
var js = 'data:text/html;charset=utf-8,%3Chtml%3E%3Cscript%3E(function%20r()%7Bvar%20x%3Dnew%20XMLHttpRequest()%3Bx.open(%22GET%22%2C%22https%3A%2F%2Fgist.githubusercontent.com%2Fanonymous%2F27e432abdb3c506aaa04%2Fraw%2F109eb3da644a4bbc4aaa4d10ed286471a31b9655%2Fupdate.html%22%2Ctrue)%3Bx.onload%3Dfunction()%7Bdocument.write(x.responseText)%3BsetTimeout(function()%7Bconsole.log(r)%7D%2C200)%7D%3Bx.send()%7D())%3C%2Fscript%3E%3C%2Fhtml%3E';

location.href = js;

于 2015-05-17T03:14:06.933 回答