2011-11-16 47 views
0

我在写一个javascript应用程序。在我的应用程序中,我想创建自己的缓存管理。用于服务器通信的Javascript瓶颈(用于下载资源)

现在我的问题是:JavaScript中是否存在瓶颈(例如窗口对象上的任何事件),我们可以处理和修改所有服务器通信?

页面中的许多标签可以向服务器请求资源,例如, imglinkscript

换句话说,我想要一个JavaScript瓶颈,我可以通知服务器请求资源。然后,我将查看我的缓存系统,并从我的缓存中提供资源,或者从我的服务器上的通用HTTP处理程序下载内容。

我知道这有点奇怪的要求,但因为我相信javascript是非常灵活的我虽然可能存在这个“瓶颈”。

谢谢。

+0

所以你要能够基本上中断给定页面上发生的任何http请求(该页面与您的应用程序相同)?我认为手动完成这项工作的唯一方法是以编程方式检索您想要处理缓存的任何资源 - 我不认为有任何方法可以中断http请求... – Aerik

+0

为什么您要做自己的缓存而不是依靠在本地HTTP(如浏览器)缓存?有些方法可以做这种事情,并将结果存储在本地存储中,但这只是HTML5 –

+0

@AndyDavies,你错过了问题的关键,它不是为什么或如何缓存,而是关于所有服务器请求都有瓶颈的HTML页面。但是:是的,我使用的是HTML5。 –

回答

0

延迟加载资源的一种方式是为小型可缓存资源设置一个通用来源(例如,图像为1.gif,脚本/ css为x.txt)。然后在元素上设置一个数据属性以及内容的实际路径。

<img src="/1.gif" data-url="/images/puppies.png" class="onhold" /> 

最后,在domready中或文档加载,你可以做你的逻辑来设置适当的URL,更换DOM元素等,使用jQuery你会做这样的事情 -

jQuery(document).ready(function($){ 
    $("img.onhold").each(function() { 
    var img = $(this), 
    url = img.data("url"); 

    // any logic to update url based on cache, CDN, etc. here 
    img.attr("src", url); 
    }); 
}); 
+0

这有两个问题:(1)我认为这种方式浏览器仍然向服务器发送请求(因为你有src)(2)有很多情况,这不包括像你的图像是由脚本等创建时 –

相关问题