我正在研究一个具有新闻提要的iPhone应用程序。这条新闻来自我写的JSON网络服务(目前居住在笔记本电脑上的MAMP上)。清除SDWebImage缓存
无论如何,我使用MySQL DB来存储对我的图像的引用,这些引用存储在apache文件系统中。
我把它们存储在一个非常特殊的方式,这是我如何存储他们:
全部图片:ng_(postid)_(seqid)
大拇指:tng_(postid)_(seqid)
帖子ID是唯一的ID分配给每个消息后。
SeqID是仅对该新闻文章的照片唯一的ID。
我可能没有做出很明确......例如:
在第一篇文章中的图像文件可能看起来像这样
ng_1_1.jpg
ng_1_2.png
ng_1_3.jpg
的图像文件的第二个职位可能看起来像这
ng_2_1.jpg
ng_2_2.png
ng_2_3.gif
这至今伟大的工作,但我想看看我删除后会发生什么,并重新创建一个在它的地方吗?
比方说,我们有一个叫做“老邮报”的帖子,其中有2个图像,与7
它的图像的帖子ID可能是这样的:
ng_7_1.jpg
ng_7_2.jpg
比方说,我们删除了然后创建一个新的,其中有三个图像,被称为“新邮政”。
它的图像看起来就像这样:
ng_7_1.jpg
ng_7_2.jpg
ng_7_3.jpg
现在,来这里的问题......如果设备已经观看了旧的文章,这是删除,然后查看新的岗位上,他们会看到前两张图像来自OLD POST。不是新的。
为什么? SDWebImage认为是因为URL是相同的,因此决定从磁盘中提取缓存的图像。它甚至不显示缓存版本,然后检查图像是否已更新。
所以,我已经制定了有这两个可能的解决方案:
- 某种方式得到SDWebImage检查在线图像,显示缓存版本
- 传下来的关键在我的JSON后,告诉我的应用程序擦拭SDWebImage的缓存(必要时)
所以,我的问题是,你将如何去删除SDWebImage的缓存,或使其显示缓存版本后检查服务器?
谢谢。最初我打算设计它,以便使用MySQL自动递增的ID。问题是如何“预测”它会产生的下一个ID。 ATM我使用以下查询'SELECT max(postid)FROM TABLE;'然后增加下一个插入,但我知道这不是MySQL如何做。 MySQL将始终生成比之前生成的高一个数字,而不是比表中的数据高一个。如果你可以告诉我如何预测下一个MySQL ID可以解决这个问题:) –
我需要计算下一个ID btw的原因是,我可以在插入数据库之前使用它来命名我的文件 –
OK I 'm使用http://stackoverflow.com/questions/2251463/mysql-php-how-to-get-auto-increment-field-value-before-inserting-data/2251486#2251486获得下一个ID(带有事务),并且我使用uniqid()生成末尾 –