インラインJavaScriptの最適化...
 
通知
すべてクリア

インラインJavaScriptの最適化の不具合

8 投稿
3 ユーザー
1 Reactions
36 表示
 g-y
(@g-y)
投稿: 4
Active Member
トピックスターター
 

インラインJavaScriptが自動で最適化されていますが、最適化前のコードが正常に動作していても最適化後に動作しない可能性が非常に大きいです。

改行を削除していますが、行コメント(//)が残っているため、それ以降の行が全てコメントになってしまいます。

また改行削除により暗黙的な行末セミコロンの補完処理が無効になるため、行末セミコロンが省略されているとエラーになります。

XWRITEバージョン
2.9.5
WordPressバージョン
6.7.1
PHPバージョン
8.2.22
ガイドラインへの同意
フォーラムガイドライン」に同意します。
個人情報の記載に関する確認
個人情報の記載がないことを確認しました。
 
投稿済 : 2025年1月31日 4:46 PM
Y. INABA
(@yinaba)
投稿: 110
Estimable Member
 

@g-y さんへ。

ソースを見ていないので何とも言えないですが、そもそもXWRITEやWordPress自体にはJavaScriptを自動的に最適化してくれる機能はないので、考えられるとすれば以下のことになります。

  1. 高速化プラグイン(Autoptimizeなど)が有効化されており、適切な設定がなされていない。

  2. サーバーの最適化機能(エックスサーバーでいえばXPageSpeedXアクセラレータ)が原因になっている。

この辺りを調整してみて変化はないでしょうか。
※特にJavaScriptの最適化は、@g-y さんご認識のとおり悪影響も大きいですので、あらかじめサーバーやプラグインの設定もご確認いただくと良いかと思います。 

XWRITEがリリースされたときからのユーザーです。
現在、XWRITE利用者に向けた資料記事を少しずつ作成しております。
▼FAQ集(非公式です)
https://151en.com/wordpress/20250125/11552/

 
投稿済 : 2025年1月31日 6:08 PM
 g-y
(@g-y)
投稿: 4
Active Member
トピックスターター
 

XWRITEのソースコードで最適化しています。\lib\inline-scripts.php です。

 
投稿済 : 2025年1月31日 7:19 PM
ito_h
(@ito_h)
投稿: 519
Honorable Member Moderator
 

@g-y さま

ご報告いただきありがとうございます。

セミコロンが省略されている場合にエラーになる問題を確認できましたので、処理を見直させていただきます。

 

以下につきましては再現できず、、お手数をおかけしますが、サンプルのコードを頂くことは可能でしょうか?

引き続きこちらでも調査いたしますが、可能でございましたらご協力いただけますと幸いです。

行コメント(//)が残っているため
 
投稿済 : 2025年1月31日 7:38 PM
Y. INABA
(@yinaba)
投稿: 110
Estimable Member
 

@g-y さんへ。

ご提示ありがとうございます。
完全に見落としておりました。確かに記載されていますね。大変失礼いたしました。

そもそもインラインCSSやインラインJSを最適化する旨の記載がどこにも載っていないこと自体が問題な気がしますので、その点も含めた資料の充実化を期待したいところです。

 

コード内のコメントを見る限り、具体的な処理の流れとしては

  1. 行コメントが削除される
  2. 余分な空白が削除される
  3. 一番最後のセミコロンが削除される

になるのではないかと思いますが、要するに①が想定通りに動いていたり、③が余計なイタズラを働いている、という認識ですよね?

あとは @ito_h さんのおっしゃるとおり、エラーが起こったときのコードを提示いただくと特定容易になると思われます。

この投稿は2週間前ずつY. INABAに変更されました

XWRITEがリリースされたときからのユーザーです。
現在、XWRITE利用者に向けた資料記事を少しずつ作成しております。
▼FAQ集(非公式です)
https://151en.com/wordpress/20250125/11552/

 
投稿済 : 2025年1月31日 7:49 PM
 g-y
(@g-y)
投稿: 4
Active Member
トピックスターター
 

返信が遅くなってしまいました。すみません。

 

コメントについては非常に限定されたケースで残ってしまうようです。

私が作成したコードから問題に関連する部分を抜き出して単純化したコードが次のようになります。

const text = /['`"]/;

function a(){
          const a = "";
            // コメント
 }
 a();

const a = "a\"";
const b = '"b\"';
const c = "a\"b\"c";

最小化の結果

const text=/['"]/;function a(){const a="";//コメント}a();const a="a\"";const b='"b\"';const c="a\"b\"c";

他にもパターンがありそうなのとJSの仕様が改訂されるたびにチェックが必要なので、完璧な最小化は難しいですね。

 

jsコードの最小化はユーザーの自己責任で行った方がよいと思います。

 
投稿済 : 2025年2月3日 4:34 PM
Y. INABA reacted
ito_h
(@ito_h)
投稿: 519
Honorable Member Moderator
 

@g-y さま

サンプルのコードをご提供いただきありがとうございます 😊 

投稿画面の「インラインCSS」「インラインJS」設定について、XWRITE側では軽量化しない方針で対応を検討しております。

対応まで今しばらくお待ちいただけますと幸いです。

この投稿は1週間前ずつito_hに変更されました
 
投稿済 : 2025年2月5日 4:54 PM
 g-y
(@g-y)
投稿: 4
Active Member
トピックスターター
 

了解しました。

対応ありがとうございます 😊 

 
投稿済 : 2025年2月7日 5:59 PM
共有: