我正在使用Mika Tuupola的Lazy Load插件http://www.appelsiini.net/projects/lazyload来在您向下滚动长图库时延迟加载图像.问题是在10张图片后,我使用无限滚动,所以我获取接下来的10张图片,并通过ajax附加它们.延迟加载不再适用于下一批附加图像.
这是一个相当javascript的图像库,所以对于其他一切(如工具提示,模态叠加等),我一直在使用jQuery的委托()绑定到插入ajax的元素.Lazy Load插件的问题是我不确定要绑定到哪个事件.
所以说我想懒得加载一类"懒"的图像.我会写这个:
$("img.lazy").lazyload({
effect: "fadeIn"
});
Run Code Online (Sandbox Code Playgroud)
它适用于前10个图像,但在通过ajax插入更多图像后停止工作.我唯一能想到的是在load事件上使用委托,如下所示:
$(document).delegate("img.lazy", "load", function(event) {
$(this).lazyload({
effect: "fadeIn"
});
});
Run Code Online (Sandbox Code Playgroud)
但这打破了一切.谢谢!
编辑: 我用来加载更多记录的jQuery(这是一个Rails应用程序):
$(window).scroll(function() {
var url;
url = $(".pagination .next_page").attr("href");
if (url && $(window).scrollTop() > $(document).height() - $(window).height() - 50) {
$(".pagination").html("<p>loading more images...</p>");
return $.getScript(url);
}
});
$(window).scroll();
Run Code Online (Sandbox Code Playgroud) 我的问题类似于这个带有乘客无尽错误的Rails 3.2资产管道,除了当我尝试实际去的时候
<link href="/assets/application-eed7996ee9017637f923133371ab3e92.css" media="all" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
我得到了404.这是我不明白的事情.它正在查看/ assets /,但是当我查看部署的代码时,资产只在/ public/assets中,这实际上是/ var/www/myapp/shared/assets的符号链接.那么世界上有什么责任告诉应用程序,查看/资产会产生正确的结果?
我正在使用Rails 3.2.0,ruby-1.9.3-p125,部署到Ubuntu,Apache和Thin.
我应该澄清一下:我的资产确实已部署到服务器上.一切都很好,直到他们需要服务,在这种情况下,production.log告诉我它正在/assets/application-eed7996ee9017637f923133371ab3e92.css中寻找它们,这是404的.
对于每个请求,我的thin.log说
cache: [GET /] miss
Run Code Online (Sandbox Code Playgroud)
和production.log说
ActionController::RoutingError (No route matches [GET] "/assets/application-abecf2e096af9ee80697fd49e79a55e7.js"):
Run Code Online (Sandbox Code Playgroud)
更新
@Brandan感谢您的帮助.我的资产确实在RAILS_ROOT/public/assets.我把它放在我的Apache vhost文件中:
DocumentRoot /var/rails/myappname/current/public
RewriteEngine On
XSendFile On
XSendFilePath /var/rails/myappname #not even sure if this line is needed
<LocationMatch "^/assets/.*$">
Header unset ETag
FileETag None
ExpiresActive On
ExpiresDefault "access plus 1 year"
</LocationMatch>
Run Code Online (Sandbox Code Playgroud)
我的RAILS_ROOT/config/environments/production.rb设置:
config.cache_classes = true
config.consider_all_requests_local = false …Run Code Online (Sandbox Code Playgroud) 我正在运行Rails 3.2.21应用程序并使用capistrano(nginx和unicorn)部署到Ubuntu 12.04.5框.
我的应用程序设置为零停机部署(至少我认为),我的配置文件看起来或多或少像这些.
问题在于:当部署几乎完成并重新启动独角兽时,当我看到我的unicorn.log时,我看到它启动了新工作人员,收获了旧工作人员......但是我的应用程序只挂了2-3分钟.此时对应用程序的任何请求都会达到超时窗口(我设置为40秒)并返回应用程序的500错误页面.
这是unicorn.log输出的第一部分,因为独角兽正在重启(我有5个独角兽工人):
I, [2015-04-21T23:06:57.022492 #14347] INFO -- : master process ready
I, [2015-04-21T23:06:57.844273 #15378] INFO -- : worker=0 ready
I, [2015-04-21T23:06:57.944080 #15381] INFO -- : worker=1 ready
I, [2015-04-21T23:06:58.089655 #15390] INFO -- : worker=2 ready
I, [2015-04-21T23:06:58.230554 #14541] INFO -- : reaped #<Process::Status: pid 15551 exit 0> worker=4
I, [2015-04-21T23:06:58.231455 #14541] INFO -- : reaped #<Process::Status: pid 3644 exit 0> worker=0
I, [2015-04-21T23:06:58.249110 #15393] INFO -- : worker=3 ready …Run Code Online (Sandbox Code Playgroud) 根据Pins的Pinterest API文档,您可以创建,编辑,获取和删除引脚.Repinning怎么样?在官方文档中似乎没有提及它,但是许多合法的Pinterest营销工具允许你从他们的界面进行回复,我认为这意味着他们正在使用API.
也许我的假设是错的?我是否遗漏了一些关于如何通过API复制现有引脚的明显信息?
作为"合法的Pinterest营销工具"的一个例子,请使用Viralwoot,它可以让你安排一个回复:
我很好奇Rails 生成命令是否有某种引用或备忘单?列出所有可能的生成器(模型,控制器,迁移等)以及可以为每个生成器传递的选项(--skip-migration等).
ajax ×1
apache ×1
capistrano ×1
command-line ×1
deployment ×1
image ×1
jquery ×1
lazy-loading ×1
pinterest ×1
ruby ×1
thin ×1
unicorn ×1