所以我玩SIMILE Timeline玩得很开心,但遗憾的是,它似乎已经被抛弃了(最近一次关闭的票据2009年5月)并且内存泄漏很多,特别是当你动态加载和卸载事件时(尤其是在我的情况下是真的).
我是JavaScript的新手,因此调试这些泄漏会变得有点复杂.在我首先用一种我不理解的语言或我从未看过的代码库来解决问题之前,我想知道是否有任何东西与我可以通过时间轴获得的功能集相比较:

我知道很多这些功能可能会被放入诸如Flot或HighCharts之类的东西中,但是这些东西在我的时间轴中可以免费使用,所以我在权衡是否更容易修复内存泄漏或在某些没有它的库上推出3-4个功能.我的直觉说"修复泄漏,它更容易",但我想知道是否有人可以向我展示一些可能90%的方式,并且进入其他10%的进入门槛较低.
我有一个带有DIVs的网页,其中包含一个mouseover用于显示弹出信息泡泡的处理程序.我不希望一次看到多个信息泡泡.但是当用户将鼠标快速移动到两个项目上时,我有时会得到两个气泡.这不应该发生,因为显示弹出窗口的代码会取消之前的弹出窗口.
如果这是一个多线程系统,那么问题就很明显了:有两个线程试图显示一个弹出窗口,它们都会取消现有的弹出窗口,然后弹出自己的弹出窗口.但我认为JavaScript总是运行单线程,这会阻止这一点.我错了吗?事件处理程序是异步运行的,在这种情况下我需要同步访问共享数据,还是应该在库代码中查找用于取消弹出窗口的错误?
编辑添加:
SimileAjax.DOM.cancelEvent(domEvt),我假设根据名称取消事件的冒泡;moustout显示弹出窗口取消,这是为了防止弹出窗口烦人地闪烁但是烦人地产生相反的效果.我还有另一个戳,看看我是否可以解决我出错的地方.:-)
我使用javascript simile时间轴有一个非常大的描述字段的时间轴项目.我不希望膨胀我的初始json有效载荷数据与所有这些,因为当有人点击时间轴项目时它是唯一需要的.
例如,在这个JSON结果上:
{
'dateTimeFormat': 'iso8601',
'wikiURL': "http://simile.mit.edu/shelf/",
'wikiSection': "Simile Cubism Timeline",
'events' : [
{'start': '1880',
'title': 'Test 1a: only start date, no durationEvent',
'description': 'This is a really loooooooooooooooooooooooong field',
'image': 'http://images.allposters.com/images/AWI/NR096_b.jpg',
'link': 'http://www.allposters.com/-sp/Barfusserkirche-1924-Posters_i1116895_.htm'
},
Run Code Online (Sandbox Code Playgroud)
我想要从JSON中一起删除描述字段(或发送null),并通过另一个ajax调用将其加载到onmand.
无论如何在初始加载期间没有发送desription字段,当有人点击时间轴项目时,它会通过ajax在该点加载描述
我认为这将是一个常见的功能,但我找不到它
我创建了一个SIMILE时间轴,它使用XML文件作为数据源,这是在调用aspx命令时由方法创建的.问题是当更新XML文件时,时间轴不会更新并显示第一次加载的数据.仅当我关闭浏览器并使用时间轴再次打开Web应用程序时,才会刷新数据.即使我转到我的Web应用程序的另一个页面,然后回到带有时间轴的页面,数据显示仍然相同.我已经确认在创建时间轴的脚本被调用之前创建/更新了XML文件,我还尝试了一些技巧,例如强制使用PageLoad(),执行Response.Redirect()并且不使用缓存.我的函数onLoad()类似于simile-widget提供的原始函数.码:
<head>
...
<meta http-equiv="pragma" content="no-cache" />
<META HTTP-EQUIV="Expires" CONTENT="-1">
...
var tl;
function onLoad() {
$(document).ready(function() {
var eventSource1 = new Timeline.DefaultEventSource(0);
var theme1 = Timeline.ClassicTheme.create();
theme1.timeline_start = new Date(Date.UTC(2010, 0, 1));
theme1.timeline_stop = new Date(Date.UTC(2014, 0, 1));
var d = theme1.timeline_start;
var bandInfos = [
Timeline.createBandInfo({ ... }),
Timeline.createBandInfo({ ... })
];
bandInfos[1].syncWith = 0;
bandInfos[1].highlight = true;
// create the Timeline
tl = Timeline.create(document.getElementById("tl"), bandInfos);
var url = '.';
// references in the data
tl.loadXML("batch_data.xml", function(xml, url) …Run Code Online (Sandbox Code Playgroud) 当使用javascript时间线小部件明喻时,我看到有小时,天,周,月,年间隔.反正有间隔是一年四分之一?
我试图将事件分组到2010年的第1季度,第2季度,第3季度,第4季度.
simile ×5
javascript ×4
timeline ×3
ajax ×1
asp.net ×1
asp.net-mvc ×1
browser ×1
dhtml ×1
xml ×1