Chrome扩展程序弹出式广告延迟时间为2 - 3秒

时间:2015-05-02 09:57:29

标签: javascript performance google-chrome-extension coffeescript

我有一个待办事项列表Chrome extension,其中所有代码都在内容中。 background.js中没有任何内容 - 主要是因为我还将此应用部署为standalone website.

点击扩展程序的浏览器操作和弹出式渲染之间有2到3秒的延迟。我相信它是因为Chrome在显示弹出窗口之前等待很多JS运行之前。

奇怪的是,当我打开应用程序作为标签时,它会立即加载(它不是一个特别沉重的JS应用程序!)它只显示弹出窗口的大量延迟。

如果没有从根本上改变我的扩展的架构,有没有办法可以获得一些快速的胜利来提高弹出窗口的加载性能?我能推迟什么?

这是我的manifest.json文件:

"background": {
  "page": "index.html"
},

"browser_action": {
  "default_icon": {   
    "19": "img/icon19.png",
    "38": "img/icon38.png"
  },

"default_title": "Super Simple Tasks",

"default_popup": "index.html?popup=true"
}

该应用程序在$(document).ready中做了一些事情:在正文上设置一个类,将一些内容放入控制台,检查存储类型,并检查我们是否有互联网连接。

注意:如果您更喜欢在每次加载时运行的JavaScript here is the compiled JS code。除了我在下面提到的内容之外,还有更多的内容。

$(document).ready ->

  setPopupClass()

  standardLog()

  checkStorageMethod()

  checkOnline()

  $new_task_input = $('#new-task')
  $link_input = $('#add-link-input')

  initialize()

initialize然后设置应用:它获取一系列任务并检查它是否为空,它向Google Analytics发送事件,必要时从旧版本运行迁移,显示任务,并做一些DOM操作。

initialize = ->

    window.storageType.get DB.db_key, (allTasks) ->

      if allTasks == null
        allTasks = Arrays.default_data
        window.storageType.set(DB.db_key, allTasks)

      ga 'send',
      'hitType': 'event'
      'eventCategory': 'Data'
      'eventAction': 'Task count'
      'eventValue': allTasks.length

      Migrations.run(allTasks)

      Views.showTasks(allTasks)

      $new_task_input.focus()

      setTimeout (->
        $('#main-content').addClass('content-show')
      ), 150

0 个答案:

没有答案