草庐IT

javascript - 延迟加载 addthis 脚本? (或延迟加载依赖于已触发事件的外部 js 内容)

coder 2024-05-18 原文

我想要 addthis我的用户可以使用小部件,但我想延迟加载它,以便我的页面尽快加载。但是,在通过脚本标签然后通过我的延迟加载方法尝试之后,它似乎只能通过脚本标签工作。在经过混淆的代码中,我看到了一些看起来依赖于 DOMContentLoaded 事件的东西(至少对于 Firefox 而言)。

由于 DOMContentLoaded 事件已经触发,因此小部件无法正确呈现。怎么办?

我可以只使用脚本标记(速度较慢)...或者我可以触发(以跨浏览器的方式)DOMContentLoaded(或等效)事件吗?我觉得这可能是不可能的,因为我相信(像 jQuery 一样)内容就绪事件有多个测试,因此必须发生多个模拟事件。

尽管如此,这是一个有趣的问题,因为我已经看到一些小部件现在假设您通过静态脚本标签包含它们的内容。如果他们编写的代码对关注速度的开发人员更有用,那就太好了,但在那之前,是否有变通办法?和/或我的任何假设是错误的吗?

编辑: 因为问题的第一个答案似乎没有捕获我的问题的重点,所以我想澄清一下情况。

这是关于一个特定的问题。我不是在寻找另一个延迟加载脚本或检查某些依赖项是否已加载脚本。 具体这个问题处理

  1. 您不使用的外部小部件 控制并可能会或可能不会 被混淆
  2. 延迟负载 外部小部件,直到他们 需要或至少,直到 基本上在其他一切之后 已加载,包括其他延迟元素
  3. b/c 的方法 小部件已编写,排除 现有的,典型的延迟加载 范式

虽然这很深奥,但我已经看到它发生在几个小部件上 - 小部件开发人员假设您只是愿意在页面底部放入另一个脚本标记。我希望节省这 500-1000 毫秒**,尽管雅虎、谷歌和亚马逊的大量研究表明它对您的用户体验很重要。

**我的锤头测试和个人经验表明,这将是我在这种情况下的节省。

最佳答案

最简单的解决方案是在将 addthis 脚本嵌入您的页面时将参数 domready 设置为 1。这是一个例子:

<script type="text/javascript" 
src="http://s7.addthis.com/js/250/addthis_widget.js#username=addthis&domready=1">
</script>

我已经在 IE、Firefox、Chrome 和 Safari 上测试过,一切正常。有关 addthis 配置参数的更多信息可用 here .

关于javascript - 延迟加载 addthis 脚本? (或延迟加载依赖于已触发事件的外部 js 内容),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/942921/

有关javascript - 延迟加载 addthis 脚本? (或延迟加载依赖于已触发事件的外部 js 内容)的更多相关文章

  1. ruby - 将数组的内容转换为 int - 2

    我需要读入一个包含数字列表的文件。此代码读取文件并将其放入二维数组中。现在我需要获取数组中所有数字的平均值,但我需要将数组的内容更改为int。有什么想法可以将to_i方法放在哪里吗?ClassTerraindefinitializefile_name@input=IO.readlines(file_name)#readinfile@size=@input[0].to_i@land=[@size]x=1whilex 最佳答案 只需将数组映射为整数:@land边注如果你想得到一条线的平均值,你可以这样做:values=@input[x]

  2. ruby - 如何在续集中重新加载表模式? - 2

    鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende

  3. ruby-on-rails - 在 ruby​​ .gemspec 文件中,如何指定依赖项的多个版本? - 2

    我正在尝试修改当前依赖于定义为activeresource的gem:s.add_dependency"activeresource","~>3.0"为了让gem与Rails4一起工作,我需要扩展依赖关系以与activeresource的版本3或4一起工作。我不想简单地添加以下内容,因为它可能会在以后引起问题:s.add_dependency"activeresource",">=3.0"有没有办法指定可接受版本的列表?~>3.0还是~>4.0? 最佳答案 根据thedocumentation,如果你想要3到4之间的所有版本,你可以这

  4. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  5. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

    我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

  6. ruby - 查找字符串中的内容类型(数字、日期、时间、字符串等) - 2

    我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s

  7. ruby-on-rails - 使用 config.threadsafe 时从 lib/加载模块/类的正确方法是什么!选项? - 2

    我一直致力于让我们的Rails2.3.8应用程序在JRuby下正确运行。一切正常,直到我启用config.threadsafe!以实现JRuby提供的并发性。这导致lib/中的模块和类不再自动加载。使用config.threadsafe!启用:$rubyscript/runner-eproduction'pSim::Sim200Provisioner'/Users/amchale/.rvm/gems/jruby-1.5.1@web-services/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:105:in`co

  8. ruby-on-rails - 事件管理员日期过滤器日期格式自定义 - 2

    是否有简单的方法来更改默认ISO格式(yyyy-mm-dd)的ActiveAdmin日期过滤器显示格式? 最佳答案 您可以像这样为日期选择器提供额外的选项,而不是覆盖js:=f.input:my_date,as::datepicker,datepicker_options:{dateFormat:"mm/dd/yy"} 关于ruby-on-rails-事件管理员日期过滤器日期格式自定义,我们在StackOverflow上找到一个类似的问题: https://s

  9. ruby-on-rails - 从应用程序中自定义文件夹内的命名空间自动加载 - 2

    我们目前正在为ROR3.2开发自定义cms引擎。在这个过程中,我们希望成为我们的rails应用程序中的一等公民的几个类类型起源,这意味着它们应该驻留在应用程序的app文件夹下,它是插件。目前我们有以下类型:数据源数据类型查看我在app文件夹下创建了多个目录来保存这些:应用/数据源应用/数据类型应用/View更多类型将随之而来,我有点担心应用程序文件夹被这么多目录污染。因此,我想将它们移动到一个子目录/模块中,该子目录/模块包含cms定义的所有类型。所有类都应位于MyCms命名空间内,目录布局应如下所示:应用程序/my_cms/data_source应用程序/my_cms/data_ty

  10. ruby-on-rails - 事件记录 : Select max of limit - 2

    我正在尝试将以下SQL查询转换为ActiveRecord,它正在融化我的大脑。deletefromtablewhereid有什么想法吗?我想做的是限制表中的行数。所以,我想删除少于最近10个条目的所有内容。编辑:通过结合以下几个答案找到了解决方案。Temperature.where('id这给我留下了最新的10个条目。 最佳答案 从您的SQL来看,您似乎想要从表中删除前10条记录。我相信到目前为止的大多数答案都会如此。这里有两个额外的选择:基于MurifoX的版本:Table.where(:id=>Table.order(:id).

随机推荐