ページ全体をリロードするか<body>
、サイズ変更イベントでのみリロードして、すべてのスクリプトを実行するにはどうすればよいですか。
ボディのみをリロードする場合が望ましいです。ヘッド内にすべての重いプラグインがあり、ボディの最後にボディfunctions.js
全体のすべての作業を行う場所があります。
私はもう試した:
var url = document.URL;
$('html').load(url);
ただし、スクリプトは新しいDOMでは実行されませんでした。
スコープを失うことなく正直に言うと、ホルダーを作成する方がよいでしょう。そうしないと、ajax呼び出しはあまり役に立ちません。次のようにします
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Ajax preview</title>
</head>
<body>
<div id="siteHolder"></div>
</body>
</html>
そして、使用しているjQueryプラグインを使用して、IDを使用して新しいページをdivに挿入するよりも、#siteHolder
次のようになります。
var request = $.ajax({
url: "example.html",
dataType: "html"
});
request.done(function(data) {
$("#siteHolder").html( data );
});
request.fail(function(jqXHR, textStatus) {
alert( "Request failed: " + textStatus );
});
このようにして、cssおよびjsライブラリを1回だけ開始し、ドキュメントをより詳細に制御します。
ウィンドウのサイズ変更時にページをリロードするには、次のようにします。
window.onresize = function(event) {
window.location.reload();
};
しかし、本当に必要なのはレスポンシブなページを作成することだと思います。レスポンシブ ページはウィンドウ サイズによって自動的に調整されます。ウィンドウのサイズを変更すると、ページをリロードせずに要素が自動的に調整されます。
CSS の例:
/* Example for Smartphones */
@media only screen
and (min-device-width : 320px)
and (max-device-width : 480px) {
/* Your Styles */
}
/* Example for Desktops and laptops */
@media only screen
and (min-width : 1224px) {
/* Your Styles */
}
完全な例はこちら
メディア クエリとレスポンシブ デザインを検索すると、多くの例が見つかります。