网页元素在中国不显示
Web elements not showing in China
我遇到了一个非常奇怪的问题。我有一个使用 ATG/BCC 电子商务框架构建的国际网站。在产品页面上,我使用 JavaScript 来显示与样式相关的尺寸选项。我的问题仅在中国,尺寸根本没有出现。我无法重现该问题,但客户正在打电话投诉。这个问题我在国内找过好几个人测试过,也没能重现。客户尝试了不同的浏览器并清除了缓存,但仍然无法看到大小。我读到过中国屏蔽了某些网站,但由于中国的一些用户没有遇到这个问题,我假设不是这样。
我真的不认为这是我的代码的问题,因为它在所有其他地区和大多数中国用户都可以正常工作。
有没有人知道可能仅在中国出现此问题的原因是什么?
HTML
<div id="product-sizes">
<%-- Sizes will be rendered using the JS template below --%>
</div>
<script type="text/template" id="tml-productsizes">
<ul>{{#sizes}}<li class="{{cssClass}} {{selected}}" data-name="{{key}}">{{name}}</li>{{/sizes}}</ul>
</script>
脚本
var $productSizesTemplate = $("#tml-productsizes");
if (typeof isColor !== "undefined" && isColor) {
this.renderSizes($productSizesEl, $productSizesTemplate, this.getSelectedColor());
}
renderSizes: function ($targetEl, $template, color) {
var templatedata = [],
productSizes = this.sizes, // array of {key: "m", value: "med"}
isPartialSale = this.isPartialSale(),
colorSizes = this.getColorSizes(color);
for (var i = 0, len = productSizes.length; i < len; i++ ) {
var size = productSizes[i],
sku = this.skus[color+size.key];
templatedata.push({
'cssClass': ($.inArray(size.key, colorSizes) >= 0)? 'size ' + ((sku && sku.onSale) ? "is-onsale": ''):'size unavailable',
'key': size.key,
'name': size.value,
'selected': (this.getSelectedSize() === size.key )? 'selected': undefined
});
}
$targetEl.html(Mustache.render($template.html(), {sizes:templatedata}));
});
我最终找到了问题所在。在我的代码中,我引用了位于 Google 的服务器上的 jQuery。 QA 团队使用允许他们在中国使用计算机的软件进行测试。他们发现来自 Google 的 CDN 的 jQuery 有时需要 50 秒才能加载!!我将 jQuery 文件移动到我们的 CDN 并解决了问题。
中国防火墙....
我遇到了一个非常奇怪的问题。我有一个使用 ATG/BCC 电子商务框架构建的国际网站。在产品页面上,我使用 JavaScript 来显示与样式相关的尺寸选项。我的问题仅在中国,尺寸根本没有出现。我无法重现该问题,但客户正在打电话投诉。这个问题我在国内找过好几个人测试过,也没能重现。客户尝试了不同的浏览器并清除了缓存,但仍然无法看到大小。我读到过中国屏蔽了某些网站,但由于中国的一些用户没有遇到这个问题,我假设不是这样。
我真的不认为这是我的代码的问题,因为它在所有其他地区和大多数中国用户都可以正常工作。
有没有人知道可能仅在中国出现此问题的原因是什么?
HTML
<div id="product-sizes">
<%-- Sizes will be rendered using the JS template below --%>
</div>
<script type="text/template" id="tml-productsizes">
<ul>{{#sizes}}<li class="{{cssClass}} {{selected}}" data-name="{{key}}">{{name}}</li>{{/sizes}}</ul>
</script>
脚本
var $productSizesTemplate = $("#tml-productsizes");
if (typeof isColor !== "undefined" && isColor) {
this.renderSizes($productSizesEl, $productSizesTemplate, this.getSelectedColor());
}
renderSizes: function ($targetEl, $template, color) {
var templatedata = [],
productSizes = this.sizes, // array of {key: "m", value: "med"}
isPartialSale = this.isPartialSale(),
colorSizes = this.getColorSizes(color);
for (var i = 0, len = productSizes.length; i < len; i++ ) {
var size = productSizes[i],
sku = this.skus[color+size.key];
templatedata.push({
'cssClass': ($.inArray(size.key, colorSizes) >= 0)? 'size ' + ((sku && sku.onSale) ? "is-onsale": ''):'size unavailable',
'key': size.key,
'name': size.value,
'selected': (this.getSelectedSize() === size.key )? 'selected': undefined
});
}
$targetEl.html(Mustache.render($template.html(), {sizes:templatedata}));
});
我最终找到了问题所在。在我的代码中,我引用了位于 Google 的服务器上的 jQuery。 QA 团队使用允许他们在中国使用计算机的软件进行测试。他们发现来自 Google 的 CDN 的 jQuery 有时需要 50 秒才能加载!!我将 jQuery 文件移动到我们的 CDN 并解决了问题。
中国防火墙....