我在页面中有一个flash元素,它根据一些可能需要一分钟才能加载的复杂查询来加载图表。我用这段代码调用查询:
var chartData:URLLoader = new URLLoader();
chartData.addEventListener(Event.COMPLETE, onLoaded);
chartData.addEventListener("httpStatus", onHttpStatus);
chartData.load(new URLRequest(chartURL));
我正在侦听完整事件或任何服务器错误事件。
我的问题是当用户想要在闪存加载URL时进入另一个页面时:浏览器在接受用户请求之前等待url完全加载。正如我所说,这个图表可能需要一分钟才能加载,如果他们想要更改页面,我的用户就会感到烦恼。
这是我的问题:是否有一个事件要从浏览器收听任何事件(点击另一个链接,点击浏览器的“后退”按钮...)?如果我这样做错了,请不要犹豫告诉我,我真的不习惯用闪光灯编程。
谢谢。
答案 0 :(得分:0)
我想我明白你在描述什么。您可能想要尝试的一些事情:
文件上传HTTP服务器
如果文件非常大,您可能希望将它们加载到另一台HTTP服务器上,例如Nginx。查看Nginx Upload Module(我确信Apache有同样的事情)。这基本上允许您上传文件而不会让用户感受到任何影响。
唯一的问题是它非常复杂,你不知道文件何时完成上传。但他们确实有如何显示Upload Progress Bars with Nginx using Javascript的示例,因此您可以执行类似的操作,并在完成时(在javascript中),向Flash发送一条消息,调用类似Event.COMPLETE
处理程序的内容。
浏览器活动
有些浏览器事件可以拦截Javascript,以防止用户在下载完成之前离开页面(不推荐,因为它可能会惹恼用户):
查看此示例:Javascript onclose: Warn the User。
希望有所帮助, 兰斯