我有一个控制器的ajax调用,它应该向我发送更新的视图,以便我可以使用更新的数据更新我的页面.但我得到304:Not Modified标题.
我尝试使用no-cache选项进行ajax调用,并尝试手动将时间戳添加到请求URL的末尾,其中没有一个在IE9上工作.
这在chrome上完美运行,无需设置缓存选项.
我不太确定问题出在哪里.
以下是我使用的代码,我认为在手动添加时间戳后工作.QA表示它在她的电脑上不起作用.
$.ajax({
url: form[0].action + "?cc="+new Date().getTime(),
type: 'POST',
cache: false,
data: $(form).serialize()
})
.success(createFilterCleanup);
Run Code Online (Sandbox Code Playgroud) 我试图通过提供内存中缓存来减少数据库访问量。我了解可以通过使用会话和cookie来获得缓存,但是这仅适用于每个客户端。如果在每个会话中都进行一次相同的查询,则缓存将无用。但是我只想访问一次数据库并对其进行缓存。
有没有一种方法可以在服务器端脚本可以访问的内存中创建缓存?我不想将缓存数据存储在文件中。
我在网上阅读了一些关于优化javascript加载的文章.我得到的几个关键点是最小化脚本文件(http请求)的数量,缩小和启用服务器上的gzip.目前,我所做的是所有javascript文件都缩小了,gzip也可以简单地启用.
第1部分)
我的问题是我有大约20个javascript文件,有一个common.js具有所有核心功能.除此之外,每个页面都会加载至少一个实现该页面功能的其他文件.
解决方案1是将所有脚本组合在一个大脚本文件中,并为每个客户端加载一次,这似乎是其他人正在做的事情.我猜YUI或JSMin可以用于压缩,所以我应该手动组合文件?
解决方案2,当需要一个必需的函数时,延迟加载,我真的不知道它是如何工作的,但它似乎是一种方法,但仍然需要更多的http请求.我很想听到有关此的任何意见.
第2部分)
我工作的Web应用程序将被部署到许多其他计算机,因为JavaScript的是非常小的,它是一个很好的做法,使一个脚本,从中央服务器动态加载最新的脚本,让每一位客户将运行最新的脚本?
我有两个表要加入,它们都有我想要加入的列的索引.
查询1
SELECT * FROM [A] INNER JOIN [B] ON [A].F = [B].F;
Run Code Online (Sandbox Code Playgroud)
查询2
SELECT * FROM (SELECT * FROM [A]) [A1] INNER JOIN (SELECT * FROM B) [B1] ON [A1].F=[B1].F
Run Code Online (Sandbox Code Playgroud)
第一个查询显然会利用索引,第二个查询呢?在执行括号中的两个select语句之后,会发生join,但我的猜测是索引无法加速查询,因为它几乎是一个新表.
.net ×1
ajax ×1
caching ×1
in-memory ×1
indexing ×1
javascript ×1
join ×1
jquery ×1
loading ×1
optimization ×1
performance ×1
php ×1
server-side ×1
sql-server ×1