• Welcome to Rotar E@rth!
  • Feel free to look around and comment~
  • Tin - for a better fantasy life!
  • TinTimer - for an even better fantasy life!

PMangar 更新中 | Upgrading PMangar

Blog Rotar 12年前 (2012-07-01) 2821次浏览 0个评论

之前的十来个月荒废了太多太多,回头一想实在是愚蠢至极,随之而来的还有各种后悔。但时光已逝,无论怎样都不会复还了,所以要做的便是:珍惜今后的光阴,以活得不后悔为宗旨,尽力创造美好的生活。

嗯,跑题了,下面言归正传。近期开始各方面发奋,包括各种编程语言,于是利用改善PMangar的机会提升运用PHP乃至是组合网络编程语言的能力。这次的主要目的是恢复键盘热键的使用,以及预读取图像。
1. 键盘热键的问题是在重拾PMangar的时候发现的,那时候一开始是单纯的用本机测试,体验的时候一切正常。可是放到000上无法使用热键,而放在SAE上却可以。那时候并没有深入研究,以为是服务器端的限制导致的,就没有研究了。后来在给漫画预览界面添加封面图的时候又遇到了这个问题,000上死活读不了,而本机和SAE都能正常显示。于是翻来覆去折腾的过程中,一次偶然的机会试了一下源代码中pic.php的地址,发现是个死链,点开会跳到404。
问题就这么找到了,在http://rotar.tk/pm/pm.php中用来fetch图像的pic.php的链接部分原本是缩写成了”/pic.php?url=*****”

这在IIS(本机)和SAE上的实际结果都是 ”http://rotar.tk/pm/pic.php?url=*****“

而到了000那里就被解读成了 “http://rotar.tk/pic.php?url=*****“

于是文件不存在,自然也就无法用来取图。去掉那个斜杠,也就是更正为”pic.php?url=*****”之后,缩略图的显示就全都正常了。

热键使用的key.php也是因为同样的原因而失效,这个问题直到4小时前才被发现及更正。

 

2. 图片预读的办法

主要有两种:

一种是利用Javascript建立Image对象然后对图像进行载入,之后在网页中插入。

而另一种,也是目前在PMangar中采用的方法是利用CSS。原理是利用CSS的background-image来读取图像并且将这个div设置为0x0的大小,于是图像就在读者看不到的情况下载入了。

这里要提一下的是多个图像的地址只需要用逗号隔开就行了,如下:

<style type="text/css" media="screen">
				#preloader {
				    background-image: 
				    	url(pic.php?url=XXXX1.jpg), 
				    	url(pic.php?url=XXXX2.jpg), 
				    	url(pic.php?url=XXXX3.jpg);
				    width: 0px;
				    height: 0px;
				    display: inline;
				}
</style>

//记得把CSS所描述的id所属的div放在body
<body>
//.....
<div id="preloader"></div>
//.....
</body>

Javascript部分就比较简单了,沿用之前的document.onkeydown的函数,给了图片一个id(例:pic)然后用getElementById的方法获取,直接pic.src = XXXXX (下一张图的地址)就可以了。链接和标题之类的也是利用Javascript进行修改的,唯一花了点心思的地方是把图片的链接字符串组从PHP搬到了JS的Array里,然后在JS中利用变量进行索引从而达到不刷新页面就能全部浏览的目的。

大概就写这么多了OLO,时间不早,在折腾会儿就水饺了,希望上文能够在今后给意外点进本文的童鞋一点帮助。

——Edit

折腾了一段时间,发现3G下图像的尺寸老是有缩水(WiFi无影响),发现貌似是Kindle升级到3.3了之后才产生的问题,不清楚是本地的浏览器配置的改变还是Whispernet代理服务器搞的鬼。于是还在想办法中,最好是能在Kindle本地解决。


本网站采用BY-NC-SA协议进行授权 , 转载请注明原文链接:PMangar 更新中 | Upgrading PMangar
喜欢 (1)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址