我正在实施浏览器缓存,并遵循Google PageSpeed关于将Last-Modified设置为"过去足够远"的数据的建议.我的.htaccess中有以下内容:
<IfModule mod_headers.c>
<FilesMatch "\.(json|pdf|swf|bmp|gif|jpeg|jpg|png|svg|tiff|ico|flv|js)$">
Header Set Last-Modified "Fri, 01 Jan 2010 12:00:00 GMT"
</FilesMatch>
</IfModule>
Run Code Online (Sandbox Code Playgroud)
我的服务器上安装了mod_headers.
不幸的是,Google PageSpeed仍抱怨并警告我:
Leverage browser caching
The following cacheable resources have a short freshness lifetime. Specify an expiration at least one week in the future for the following resources:
Run Code Online (Sandbox Code Playgroud)
然后列出PNG,GIF,JPG等.雅虎YSlow说的基本相同.
查看我应该缓存的一个资源的响应头,我看到了:
Date: Tue, 19 Oct 2010 20:12:04 GMT
Server: Apache/2.2.14 (Ubuntu)
Last-Modified: Tue, 07 Sep 2010 23:51:33 GMT
Etag: "2e0e34-2a43-48fb413a96a20"
Accept-Ranges: bytes
Content-Length: 10819
Content-Type: image/png
Run Code Online (Sandbox Code Playgroud)
如您所见,Last-Modified数据与我在.htaccess中指定的数据不匹配.
我有什么想法我做错了吗?
我正在使用一些运行SQL查询的旧代码作为参考.
在某些时候,它会变成如下:
sqlDataAdapter.Fill(dataSet);
DataRow dataRow = dataSet.Tables[0].Rows[0];
Object obj = dataRow[fieldName];
Run Code Online (Sandbox Code Playgroud)
旧代码确实:
string output;
if (!string.IsNullOrEmpty(obj.ToString())) { output = obj.ToString(); }
else { output = "Not Available"; }
Run Code Online (Sandbox Code Playgroud)
我改为:
output = obj as string ?? "Not Available"
Run Code Online (Sandbox Code Playgroud)
但有时,它破了.正如我所怀疑的那样,当条目是一个时,它正在发生int.int在那些案件中铸造解决了这个问题.
然后,当没有obj[fieldName] int类型的条目时,出现了另一个问题.当我走过调试器时,我惊讶地发现那obj不是null.在VS中,鼠标移除显示它有一个价值{}.
到底是{}什么?我如何对它进行布尔测试?
(在旧代码中,它会在这种情况下.ToString()返回""并按预期工作.)
今天我有一个有趣的面试问题,让我有点困惑.我被问及虚假的价值观.所以undefined,NaN,null,0和一个空字符串都计算为false.在JavaScript中知道这有用的原因是什么?我唯一能想到的就是不必这样做:
if (mystring === '' || mystring === undefined) { }
Run Code Online (Sandbox Code Playgroud)
我可以做这个:
if (!mystring)
Run Code Online (Sandbox Code Playgroud)
这是唯一有用的应用程序吗?
Java或C#中是否有强制继承类来调用基础实现的构造?你可以调用super()或base()但是如果没有调用它可能会抛出编译时错误吗?那会很方便..
- 编辑 -
我主要是对重写方法感到好奇.
我有两个 List 集合,我们称它们为 allFieldNames (完整集)和 exceptedFieldNames (部分集)。我需要派生第三个列表,该列表为我提供所有非排除的字段名称。换句话说,在排除的字段名称中找不到所有字段名称的子集列表。这是我当前的代码:
public List<string> ListFieldNames(List<string> allFieldNames, List<string> excludedFieldNames)
{
try
{
List<string> lst = new List<string>();
foreach (string s in allFieldNames)
{
if (!excludedFieldNames.Contains(s)) lst.Add(s);
}
return lst;
}
catch (Exception ex)
{
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道必须有一种比手动迭代更有效的方法。请提出建议。
我希望使用RMI在网络上发送java.nio.ByteBuffer,但是ByteBuffer不可序列化.我尝试过以下自定义类无济于事:
public class NetByteBuffer implements java.io.Serializable {
ByteBuffer buffer;
public NetByteBuffer(ByteBuffer buffer) {
this.buffer = buffer;
}
public ByteBuffer getByteBuffer() {
return this.buffer;
}
Run Code Online (Sandbox Code Playgroud)
}
客户端仍然获得不可序列的异常.有任何想法吗?
谢谢
当我在下面的代码块上运行代码分析时,我收到以下消息:
对象'stream'可以在方法'upload.Page_Load(object,EventArgs)'中多次处理.为避免生成System.ObjectDisposedException,不应在对象上多次调用Dispose.
using(var stream = File.Open(newFilename, FileMode.CreateNew))
using(var reader = new BinaryReader(file.InputStream))
using(var writer = new BinaryWriter(stream))
{
var chunk = new byte[ChunkSize];
Int32 count;
while((count = reader.Read(chunk, 0, ChunkSize)) > 0)
{
writer.Write(chunk, 0, count);
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么它可能被调用两次,以及如何修复它以消除错误.有帮助吗?
鉴于这样的对象:
{ name: "joe" }
Run Code Online (Sandbox Code Playgroud)
我想得到值"名称".我知道我可以使用for构造来迭代对象中的属性,但是我将要处理的对象将始终只有一个键:值对,我不知道属性的名称.进一步说明:
var a = { age: 24 };
console.log(myFunc(a)) // Displays "age"
var b = { job: "cook" };
console.log(myFunc(b)) // Displays "job"
Run Code Online (Sandbox Code Playgroud)
反正有没有迭代对象吗?我也想在纯Javascript中这样做.没有涉及框架/库.
我想从应用程序包中读取声音文件,复制它,播放其最大音量级别(增益值或峰值功率,我不确定它的技术名称),然后将其作为另一个文件写入捆绑包再次.
我做了复制和写作部分.生成的文件与输入文件相同.我在AudioToolbox框架中使用AudioFile服务的AudioFileReadBytes()和AudioFileWriteBytes()函数来做到这一点.
所以,我有输入文件的字节以及它的音频数据格式(通过使用带有kAudioFilePropertyDataFormat的AudioFileGetProperty())但是我找不到这些中的变量来播放原始文件的最大音量级别.
为了澄清我的目的,我正在尝试生成另一个声音级别相对于原始级别增加或减少的声音文件,所以我不关心系统的音量级别,这是由用户或iOS设置的.
这可能与我提到的框架有关吗?如果没有,还有其他建议吗?
谢谢
编辑:通过Sam关于某些音频基础知识的答案,我决定用另一种方法扩展问题.
我可以使用AudioQueue服务将现有声音文件(在捆绑中)录制到另一个文件,并在录制阶段播放音量级别(借助框架)吗?
更新:这是我如何读取输入文件和写入输出.下面的代码降低了"一些"幅度值的声级,但噪声很大.有趣的是,如果我选择0.5作为幅度值,它会增加声级而不是降低它,但是当我使用0.1作为幅度值时,它会降低声音.两种情况都涉及令人不安的噪音.我认为这就是为什么Art正在谈论规范化,但我不知道规范化.
AudioFileID inFileID;
CFURLRef inURL = [self inSoundURL];
AudioFileOpenURL(inURL, kAudioFileReadPermission, kAudioFileWAVEType, &inFileID)
UInt32 fileSize = [self audioFileSize:inFileID];
Float32 *inData = malloc(fileSize * sizeof(Float32)); //I used Float32 type with jv42's suggestion
AudioFileReadBytes(inFileID, false, 0, &fileSize, inData);
Float32 *outData = malloc(fileSize * sizeof(Float32));
//Art's suggestion, if I've correctly understood him
float ampScale = 0.5f; //this will reduce the 'volume' by -6db
for (int i = 0; i < fileSize; i++) {
outData[i] = (Float32)(inData[i] …Run Code Online (Sandbox Code Playgroud) c# ×4
java ×2
javascript ×2
.htaccess ×1
apache ×1
audio ×1
audiotoolbox ×1
bytebuffer ×1
collections ×1
dispose ×1
header ×1
http-headers ×1
httpd.conf ×1
inheritance ×1
iphone ×1
linq ×1
null ×1
object ×1
polymorphism ×1
rmi ×1
sql ×1
super ×1
time ×1
volume ×1