清理错误和贬值的网页,
我遇到了以下警告消息:
jquery-3.4.1.js:9725
[弃用]不赞成在主线程上使用同步XMLHttpRequest,因为它对最终用户的体验具有不利影响。
如需更多帮助,请检查https://xhr.spec.whatwg.org/。
我想正确处理JavaScript:
但是我不知道该怎么做
我一直在使用:
<head>
<script>$(document).ready(function () { $('<script/>', { type: 'text/javascript', src: 'assets/js/set-background.js' }).appendTo('head'); }); </script>
</head>
带有JS文件:
...
var body = document.getElementsByTagName("body")[0];
body.className += " change-" + idx;
...
如果脚本为:
,则不会发生警告。
<body>
...
<script src="assets/js/set-background.js"></script>
...
</body>
尝试过,
<head>
<script>$(function(){'assets/js/set-background.js'}) </script>
</head>
<head>
<script type="text/javascript" src="assets/js/set-background.js"></script>
</head>
<body class="container" onload="assets/js/set-background.js">
我看过其他开发人员的讨论:
我也一直在阅读:
答案 0 :(得分:2)
此警告与页面加载无关。问题在于,您在某个地方使用了带有{async“参数class SimilarProductRelation < ApplicationRecord
belongs_to :product
belongs_to :similar_product, class_name: "Product"
end
class Product < ApplicationRecord
# self being the "origin"
has_many :similar_products_relations, source: :product_id, class_name: "SimilarProductRelation"
has_many :similar_products, class_name: "Product", through: :similar_products_relations
# self being the "destination"
has_many :similar_products_relations_as, source: :similar_product_id, class_name: "SimilarProductRelation"
has_many :similar_products_as, class_name: "Product", through: :similar_products_relations
end
# migration
create_table :similar_product_relations do |t|
t.references :product, foreign_key: true, null: false, index: true
t.references :similar_product, foreign_key: { to_table: :products }, null: false, index: true
end
的{{3}}。
这不好,因为JS事件循环行为(单线程),所以如果下载请求的数据花费较长时间,则页面将完全冻结:没有单击,滚动,其他JS函数,什么都没有!>
要解决此问题,您必须使用异步Product
或XMLHttpRequest
。