帮酷LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
文章标签:JAVA  asynchronously  DOC  async  Javascript  异步  
Asynchronously handle writing javascript to pages, even if they have document.write, after page load

  • 源代码名称:postscribe
  • 源代码网址:http://www.github.com/krux/postscribe
  • postscribe源代码文档
  • postscribe源代码下载
  • Git URL:
    git://www.github.com/krux/postscribe.git
  • Git Clone代码到本地:
    git clone http://www.github.com/krux/postscribe
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/krux/postscribe
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
  • 概述

    远程脚本,尤它的是广告,在他们加载的时候,block 可以进行它的他任何操作。 他们贡献了一个大型的% 加载时间,而影响你的底线。 异步广告不 block 页面,可以在核心内容- 异步仓库之后交付。

    为什么要异步传递广告是如此困难? 因为它们可能包含对 document.write的调用,这些调用需要同步处理。 PostScribe使你无需修改广告代码即可异步交付同步广告。

    方法

    它的他标签编写库是( 请参见替代插件。),但是PostScribe使用的是 with,一种确保内容写入内容和 document.write/innerHTML的方式。 读:它的行为像浏览器一样,没有复杂的解析或者攻击。

    有关更多信息,请参见:

    正在启动

    PostScribe重写 document.write 在DOM准备好之后使用PostScribe是最好和最安全的。

    安装

    浏览器

    如果只想使用脚本而不安装任何内容,请使用以下命令从 cdnjs 加载脚本:

    <scriptsrc="https://cdnjs.cloudflare.com/ajax/libs/postscribe/2.0.8/postscribe.min.js"></script>

    NPM

    你可以使用 npm npm来包括:

    npm install --save postscribe

    Postscribe在浏览器中运行,因此假设你正在使用像 web serviceBrowserify,JSPM或者Rollup来消费CommonJS模块。

    Bower

    你可以使用 Bower 从 CDN URL中安装 postscribe:

    bower install --save https://cdnjs.cloudflare.com/ajax/libs/postscribe/2.0.8/postscribe.min.js

    图书馆将在 <components_folder>/postscribe/index.js

    电子邮件访问

    es6/ES2015

    importpostscribefrom'postscribe';

    AMD

    define(['postscribe'], function(postscribe) {
    });

    var postscribe =require('postscribe');

    用法

    将html附加到 #mydiv:

    postscribe('#mydiv', '<h1>Hello PostScribe</h1>');

    一般情况下:

    postscribe(element, html, options);
    • 元素: 元素。jQuery对象或者id选择器( 比如。 ) #mydiv"
    • html: html字符串或者带有DOM文档并写入它的函数。
    • 选项: 选项的散列
      • afterAsync: 当异步脚本加载时调用的回调
      • afterDequeue: 在从写入队列中删除之前调用的回调
      • afterStreamStart: 在流线程发布之后的一个称为同步
      • afterWrite: 写入缓冲 document.write 调用后调用的回调
      • 完成:在写入完成时调用一个将调用的回调
      • autoFix: 一种允许禁用规定的autoFix特性的布尔值
      • beforeEnqueue: 在添加到写入队列之前立即调用的回调
      • beforeWriteToken: 在写入令牌之前调用的回调
      • beforeWrite: 在写入缓冲 document.write 调用之前调用的回调
      • :默认情况下引发错误的函数,但可以覆盖
      • releaseAsync: 是否允许脚本w/异步属性集从队列中掉出

    如果你只想要混乱,请在包含以下内容的html页面顶部包含js文件:

    <divid="mydiv"></div>
    <scripttype="text/javascript">postscribe('#mydiv', '<h1>Hello PostScribe</h1>');</script>

    如何在加载后使用PostScribe渲染广告

    通常你会有

    <divid="ad"><h5>Advertisement</h5>
     <scripttype="text/javascript">// Build url params and make the ad calldocument.write('<script src=doubleclick_url_with_params></script>');</script>
    </div>

    相反,移除广告呼叫并关闭 div

    <divid="ad"><h5>Advertisement</h5></div>
    <scripttype="text/javascript">// jQuery used as an example of delaying until load.$(function() {// Build url params and make the ad callpostscribe('#ad', '<script src=doubleclick_url_with_params></script>'); });</script>

    你可以通过一些钩子作为第三个参数。 例如:

    <scripttype="text/javascript">// jQuery used as an example of delaying until load.$(function() {postscribe('#ad', '<script src=doubleclick_url_with_params></script>', {done:function() {console.info('Dblclick script has been delivered.'); } }); });</script>

    查看 postscribe.js的开始以获得完整的列表。

    如何使用 ,Prototype,Backbone,下划线,jQuery UI,YUI,mooTools,等等,dojo,,FAQ,FAQ,FAQ,FAQ等

    是的,它既不依赖于任何现有的流行javascript框架也不与之冲突。

    是否与页面上的另一个标记库一起工作?

    否一次只有一个标签编写器。

    谁正在使用它

    这个项目最初是在 Krux 开发的,作为它的 SuperTag产品的一部分。 it纽约时报 纽约时报华尔街日报和数以百计的其他 others tested battle。 它被Krux主动维护。

    浏览器兼容性

    PostScribe的行为与本机 document.write/innerHTML 尽可以能的紧密,并且我们非常心心地在每一个浏览器中工作。 我们期望它能在 2009年之后构建的每个浏览器上运行。 有超过 500个单元测试在每次提交时运行。 PostScribe经过全面测试,可以在以下浏览器中正常运行:

    • Firefox 4 +
    • Chrome 10 +
    • Safari 5.0 +
    • Opera 10.0 +
    • IE 8 +
    • iphone/ipad及其他基于 web kit的浏览器

    请注意,我们不提供比IE8更早版本的IE 版本。

    我们已经承担了巨头的工作,还有它的他可以替代的方法来解决这个问题。 :我们找到的最好

    如果你希望将项目添加到这里列表中,请将问题归档,我们将很高兴。

    Help/Bugs/Requests

    有问题需要帮助? 是否添加附加功能? 我们使用github系统的票证来跟踪这些请求。

    如果你没有发现问题正在处理中,请查看现有问题,并将新问题提交到文件。 越多的信息越能描述你的问题。

    请查看 CONTRIBUTING.md 以获得完整的详细信息。

    环境

    项目需要 nodejs (> =5.6 ) 和 npm (> =3。6.0 ) 进行开发。 它没有运行时依赖。

    开发

    检查代码并使用以下方法安装开发依赖项:

    npm install

    建筑

    若要生成代码,请运行

    npm run build

    Linting

    我们使用ESLint和JSCS对JavaScript进行 static 分析,并保持良好的效果。 要同时运行,请使用:

    npm run lint

    测试

    在每次提交时,使用 travis-ci 在每次提交时使用PhantomJS运行测试,用真实浏览器运行测试。

    要在本地测试代码,可以使用:

    npm test

    要在Test-Driven-Development模式下运行测试,在每次更改后运行测试,请使用:

    npm run tdd

    要运行 跨浏览器 测试,请使用:

    npm run test:cross-browser

    问题指南

    请添加一个失败的单元测试 插件,或者包含一个提取并重新生成该问题的jsfiddle插件。

    请尝试 fork 这个 jsfiddle。 我们已经为你准备好了一切,以便你能重现你的问题。

    许可证

    我们的目标是让你使用这个 inside,所以我们选择了最受限制的许可。

    请参见许可协议。



    文章标签:JAVA  Javascript  DOC  async  异步  asynchronously  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语