checkout_success_3rd_scripts - dongyuwei/blog GitHub Wiki

checkout_success支付成功页面第三方脚本(因为img请求不阻塞页面显示,故此次分析不包括第三方img请求)

<script type="text/javascript" src="https://www.googleadservices.com/pagead/conversion.js"></script>

这个总共有 46个js , 并且里面使用了document.write. 优化方案 : 合并请求,置于页面最底部.


```html <script language="javascript" src="https://www.everestjs.net/static/st.js"></script> <script language="javascript"> var ef_event_type="transaction"; var ef_transaction_properties = "ev_orders=1&ev_order_amount=1&ev_order_revenue=292&ev_transid=1305162104663389";

var ef_segment = "637"; var ef_search_segment = ""; var ef_userid="2539"; var ef_pixel_host="pixel2539.everesttech.net"; effp(); </script>

**优化方案** : 异步加载,回调中执行请求.让合作方修改js脚本,避免使用全局变量.
<hr>

```html
<script type="text/javascript">
    /* NexTag ROI Optimizer Data */
    var id = '3635451';
    var rev = '151.98';
    var order = '1305162104663389';
    var cats = 'Weddings & Events';
    var prods = 'Audrey Hepburn Funny Face Ball Gown Bateau Knee-length Satin Tulle Wedding Dress';
    var units = '1';
</script>
<script type="text/javascript" src="https://imgsrv.nextag.com/imagefiles/includes/roitrack.js"></script>

优化方案 : 异步加载,合并2个请求. 必须强烈要求合作方修改js脚本,不能使用这些容易冲突的全局变量!


<script language="javascript">
        /* Performance Tracking Data */
        var mid            = '181636';
        var cust_type      = '1';
        var order_value    = '107.8906050396';
        var order_id       = '1305162104663389';
        var units_ordered  = '1';
</script>
<script language="javascript" src="https://www.shopzilla.com/css/roi_tracker.js"></script>

优化方案 : 异步加载, 合并2个js请求. 必须强烈要求合作方修改js脚本,不能使用这些容易冲突的全局变量!


<script language="JavaScript">
var merchant_id = '444995';
var order_amt = '151.98';
var category_name = 'Weddings & Events';
var category_id = '1180';
var product_name = 'Audrey Hepburn Funny Face Ball Gown Bateau Knee-length Satin Tulle Wedding Dress';
var product_id = '61496';
var order_id = '1305162104663389';
</script>
<script language="JavaScript" src="https://stat.DealTime.com/ROI/ROI.js?mid=444995">
</script>

优化方案 : 异步加载. 要求合作方修改js脚本,不能使用这些容易冲突的全局变量.


<script language="JavaScript" src="https://roi.business.com/crm/js/conversion.js"></script>
<script language="JavaScript" type="text/javascript">
var bdc_conversion_value = 0.00;
var bdc_conversion_id = "12343";  // Important - don't change
BDC_RecordConversion(bdc_conversion_value, bdc_conversion_id);
</script>

优化方案 : 异步加载. 回调中发请求. 要求合作方修改js脚本,避免使用全局变量.


<script language="JavaScript">
var merchant_id = '504143';
var order_amt = '107.8906050396';
var category_name = 'Weddings & Events';
var category_id = '1180';
var product_name = 'Audrey Hepburn Funny Face Ball Gown Bateau Knee-length Satin Tulle Wedding Dress';
var product_id = '61496';
var order_id = '1305162104663389';
</script>
<script language="JavaScript" src="https://stat.DealTime.com/ROI/ROI.js?mid=504143">
</script>

优化方案 : 异步加载. 要求合作方修改js脚本,避免使用容易冲突的全局变量.


<script language="Javascript">
    var merchant_account_id='58058';
    var m_order_id='1305162104663389';
    var m_order_value='151.98';
    var m_category_name='Weddings & Events';
    var m_product_id='61496';
    var m_product_name='Audrey Hepburn Funny Face Ball Gown Bateau Knee-length Satin Tulle Wedding Dress';
    var m_price='146.9900';
    var m_quantity='1';
</script>
<script language="Javascript" src="https://merchant.pronto.com/js/roi.js"></script>

优化方案 : 异步加载. 要求合作方修改js脚本,避免使用全局变量.


<script id="mstag_tops" type="text/javascript" src="//flex.atdmt.com/mstag/site/05ebbec8-5644-4a8a-ae29-94ef9bb6bfcf/mstag.js"></script>
<script type="text/javascript"> 
mstag.loadTag("analytics", {dedup:"1",domainId:"1269917",type:"1",revenue:"292",actionid:"30500"})
</script>

优化方案 : 异步加载,合并3个请求. 要求合作方修改js脚本,避免使用全局变量.


<script language="JavaScript" src="https://stat.DealTime.com/ROI/ROI.js?mid=507508"></script>

优化方案 : 异步加载,合并3个请求.


<script src="https://seal.verisign.com/getseal?host_name=www.lightinthebox.com&size=S&use_flash=YES&use_transparent=YES&lang=en" type="text/javascript"></script>

优化方案 : 异步加载(没有用了就下线!).


<script type="text/javascript" src="//d3cxv97fi8q177.cloudfront.net/foundation-A43733-743c-42c3-8c1f-0a9c595cd3371.js"></script>

优化方案 : 异步加载.

优化方案总结:

  1. 和第三方沟通,多个统计请求合并成一个请求.
  2. 所有js脚本都异步请求(前端提供统一的第三方js加载方法).
    1. 第三方js脚本请求时需要的统计信息推荐附加在脚本链接中;
    2. 脚本加载完毕后才发的统计请求放到加载成功回调函数中.
  3. 统计信息如果使用了js全局变量,需要与合作方沟通,让他们更新脚本,要提供不污染全局空间的统计方式. 需要在实施中逐个具体分析.
  4. 对于新增的第三方脚本,要保证几点:
    1. 使用异步加载方式,不阻塞页面渲染;
    2. 不使用全局变量,尽量不污染全局空间.
    3. 有1个以上统计需求时,脚本必须提供批量的合并请求方法.
⚠️ **GitHub.com Fallback** ⚠️