ਲੇਖ ਡਾਇਰੈਕਟਰੀ
ਕੀ ਤੁਸੀਂ W3 ਟੋਟਲ ਕੈਸ਼ ਮਿਨੀਫਾਈ ਲਈ ਸਹੀ ਏਮਬੈਡਿੰਗ ਕਿਸਮ ਚੁਣਨ ਵਿੱਚ ਮੁਸ਼ਕਲ ਆ ਰਹੀ ਹੈ? ਇਹ ਲੇਖ ਇੱਕ ਵੈਬਮਾਸਟਰ ਦੇ ਅਸਲ-ਸੰਸਾਰ ਦੇ ਅਨੁਭਵ ਨੂੰ ਸਾਂਝਾ ਕਰਦਾ ਹੈ ਅਤੇ ਸਹੀ ਮਿਨੀਫਾਈ ਏਮਬੈਡਿੰਗ ਕਿਸਮ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਚੁਣਨ ਲਈ ਇੱਕ ਕਦਮ-ਦਰ-ਕਦਮ ਗਾਈਡ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ, ਵੈੱਬਸਾਈਟ ਸਟਾਈਲ ਦੀਆਂ ਦੁਰਘਟਨਾਵਾਂ ਅਤੇ ਲੋਡਿੰਗ ਕਰੈਸ਼ਾਂ ਤੋਂ ਬਚਦਾ ਹੈ। ਇਸ ਵਿੱਚ ਇੱਕ ਫੂਲਪਰੂਫ ਸੈੱਟਅੱਪ ਹੱਲ ਵੀ ਸ਼ਾਮਲ ਹੈ ਜਿਸਨੂੰ ਸ਼ੁਰੂਆਤ ਕਰਨ ਵਾਲੇ ਵੀ ਆਸਾਨੀ ਨਾਲ ਲਾਗੂ ਕਰ ਸਕਦੇ ਹਨ, ਇੱਕ ਨਿਰਵਿਘਨ ਅਤੇ ਤੇਜ਼ ਵਰਡਪ੍ਰੈਸ ਅਨੁਭਵ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹੋਏ!
ਮੈਂ ਇੱਕ ਵੈੱਬਸਾਈਟ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾ ਰਿਹਾ ਸੀ ਅਤੇ ਜਦੋਂ ਮੈਂ W3 ਟੋਟਲ ਕੈਸ਼ ਵਿੱਚ ਮਿਨੀਫਾਈ ਸੈਟਿੰਗਾਂ ਖੋਲ੍ਹੀਆਂ, ਤਾਂ ਮੈਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਹੈਰਾਨ ਰਹਿ ਗਿਆ। ਏਮਬੈਡਡ ਕਿਸਮ ਲਈ ਡ੍ਰੌਪਡਾਉਨ ਮੀਨੂ ਵਿੱਚ ਚਾਰ ਵਿਕਲਪ ਸਨ: ਡਿਫਾਲਟ (ਬਲਾਕ), ਗੈਰ-ਬਲਾਕਿੰਗ ਲਈ JS ਦੀ ਵਰਤੋਂ ਕਰੋ, ਗੈਰ-ਬਲਾਕਿੰਗ ਲਈ "ਅਸਿੰਕ੍ਰੋਨਸ" ਦੀ ਵਰਤੋਂ ਕਰੋ, ਅਤੇ ਗੈਰ-ਬਲਾਕਿੰਗ ਲਈ "ਦੇਰੀ" ਦੀ ਵਰਤੋਂ ਕਰੋ।
ਮੈਂ ਇੱਕ ਪਲ ਲਈ ਇਸ ਬਾਰੇ ਸੋਚਿਆ, ਇਹ ਸਭ ਕੀ ਹੈ?
ਮੇਰੇ ਤੇ ਵਿਸ਼ਵਾਸ ਕਰੋ, ਤੁਸੀਂ ਇਕੱਲੇ ਨਹੀਂ ਹੋ। ਇਹ ਚਾਰ ਵਿਕਲਪ ਇੱਕ ਨਵੇਂ ਵਿਅਕਤੀ ਨੂੰ ਵੀ ਉਲਝਣ ਵਿੱਚ ਪਾ ਦੇਣਗੇ, ਕਿਸੇ ਅਜਿਹੇ ਵਿਅਕਤੀ ਨੂੰ ਤਾਂ ਛੱਡ ਦਿਓ ਜੋ ਸਾਲਾਂ ਤੋਂ ਵਰਡਪ੍ਰੈਸ ਦੀ ਵਰਤੋਂ ਕਰ ਰਿਹਾ ਹੈ। ਇਹ ਲੇਖ ਉਹਨਾਂ ਮੁਸ਼ਕਲਾਂ ਨੂੰ ਪੇਸ਼ ਕਰਦਾ ਹੈ ਜੋ ਮੈਂ ਸਾਹਮਣਾ ਕੀਤੀਆਂ ਹਨ ਅਤੇ ਜੋ ਸਬਕ ਮੈਂ ਸਿੱਖੇ ਹਨ, ਸਿੱਧੇ ਤੁਹਾਡੇ ਲਈ। ਤੁਹਾਨੂੰ ਦਸਤਾਵੇਜ਼ਾਂ ਦੀ ਸਲਾਹ ਲੈਣ ਦੀ ਜ਼ਰੂਰਤ ਨਹੀਂ ਹੈ; ਬਸ ਮੇਰੀਆਂ ਹਦਾਇਤਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ।
ਇਹ ਚਾਰ ਏਮਬੈਡਿੰਗ ਕਿਸਮਾਂ ਅਸਲ ਵਿੱਚ ਕੀ ਹਨ?

ਆਓ ਪਹਿਲਾਂ ਇਸ ਬਾਰੇ ਗੱਲ ਕਰੀਏ ਕਿ ਇਹ ਚਾਰ ਵਿਕਲਪ ਕਿਸ ਤਰ੍ਹਾਂ ਦੇ ਕਿਰਦਾਰ ਹਨ।
ਡਿਫਾਲਟ ਬਲਾਕਿੰਗ ਸਭ ਤੋਂ ਸਿੱਧਾ ਤਰੀਕਾ ਹੈ। ਜਦੋਂ ਬ੍ਰਾਊਜ਼ਰ ਕਿਸੇ ਸਕ੍ਰਿਪਟ ਦਾ ਸਾਹਮਣਾ ਕਰਦਾ ਹੈ, ਤਾਂ ਇਹ ਸਕ੍ਰਿਪਟ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਬੰਦ ਕਰ ਦਿੰਦਾ ਹੈ, ਡਾਊਨਲੋਡ ਕਰਦਾ ਹੈ ਅਤੇ ਚਲਾਉਂਦਾ ਹੈ, ਅਤੇ ਫਿਰ ਪੰਨੇ ਨੂੰ ਰੈਂਡਰ ਕਰਨਾ ਜਾਰੀ ਰੱਖਦਾ ਹੈ। ਭਰੋਸੇਯੋਗ ਲੱਗਦਾ ਹੈ, ਠੀਕ ਹੈ? ਪਰ ਸਮਝੌਤਾ ਇਹ ਹੈ ਕਿ ਤੁਹਾਡਾ ਸ਼ੁਰੂਆਤੀ ਪੰਨਾ ਲੋਡ ਹੋਣ ਵਿੱਚ ਦੇਰੀ ਹੋਵੇਗੀ; ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਕੁਝ ਵੀ ਦੇਖਣ ਤੋਂ ਪਹਿਲਾਂ ਸਕ੍ਰਿਪਟ ਦੇ ਚੱਲਣ ਦੇ ਖਤਮ ਹੋਣ ਦੀ ਉਡੀਕ ਕਰਨੀ ਪਵੇਗੀ।
ਨਾਨ-ਬਲਾਕਿੰਗ ਲਈ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਕਾਫ਼ੀ ਦਿਲਚਸਪ ਹੈ। ਪੰਨੇ 'ਤੇ ਸਿੱਧੇ `<script>` ਟੈਗ ਲਿਖਣ ਦੀ ਬਜਾਏ, ਇਹ ਪਹਿਲਾਂ ਇੱਕ ਛੋਟੀ ਸਕ੍ਰਿਪਟ ਆਉਟਪੁੱਟ ਕਰਦਾ ਹੈ, ਅਤੇ ਫਿਰ ਪੰਨਾ ਚੱਲਣ ਤੋਂ ਬਾਅਦ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਰਾਹੀਂ ਜ਼ਰੂਰੀ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਪੰਨੇ ਵਿੱਚ ਇੰਜੈਕਟ ਕਰਦਾ ਹੈ। ਇਸ ਤਰ੍ਹਾਂ, ਪੰਨਾ ਪਹਿਲਾਂ ਰੈਂਡਰ ਕਰ ਸਕਦਾ ਹੈ, ਅਤੇ ਸਕ੍ਰਿਪਟਾਂ ਹੌਲੀ-ਹੌਲੀ ਲੋਡ ਹੁੰਦੀਆਂ ਹਨ। ਬਹੁਤ ਵਧੀਆ ਲੱਗਦਾ ਹੈ, ਠੀਕ ਹੈ? ਹਾਲਾਂਕਿ, ਸਮੱਸਿਆ ਇਹ ਹੈ ਕਿ ਇਹ ਗਤੀਸ਼ੀਲ ਇੰਜੈਕਸ਼ਨ ਪ੍ਰਕਿਰਿਆ ਸਕ੍ਰਿਪਟਾਂ ਦੇ ਅਸਲ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਕ੍ਰਮ ਨੂੰ ਵਿਗਾੜ ਸਕਦੀ ਹੈ। ਜੇਕਰ ਤੁਹਾਡੇ ਪੰਨੇ 'ਤੇ ਕੁਝ ਸਕ੍ਰਿਪਟਾਂ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਕ੍ਰਮ 'ਤੇ ਬਹੁਤ ਜ਼ਿਆਦਾ ਨਿਰਭਰ ਕਰਦੀਆਂ ਹਨ, ਤਾਂ ਸਮੱਸਿਆਵਾਂ ਪੈਦਾ ਹੋ ਸਕਦੀਆਂ ਹਨ।
"ਅਸਿੰਕ੍ਰੋਨਸ" ਦੀ ਵਰਤੋਂ ਨਾਨ-ਬਲੌਕਿੰਗ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਲਈ ਕਰਨ ਵਿੱਚ ਸਿਰਫ਼ `<script>` ਟੈਗ ਵਿੱਚ `ਅਸਿੰਕ੍ਰੋਨਸ` ਵਿਸ਼ੇਸ਼ਤਾ ਜੋੜਨਾ ਸ਼ਾਮਲ ਹੈ। ਸਕ੍ਰਿਪਟ ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਅਸਿੰਕ੍ਰੋਨਸਲੀ ਡਾਊਨਲੋਡ ਹੋਵੇਗੀ ਅਤੇ ਪੂਰਾ ਹੋਣ 'ਤੇ ਤੁਰੰਤ ਲਾਗੂ ਹੋਵੇਗੀ, ਬਿਨਾਂ ਪੰਨੇ ਦੀ ਉਡੀਕ ਕੀਤੇ। ਹਾਲਾਂਕਿ, ਕਮਜ਼ੋਰੀ ਇਹ ਹੈ ਕਿ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਆਰਡਰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਬੇਕਾਬੂ ਹੈ; ਜੋ ਵੀ ਡਾਊਨਲੋਡ ਪਹਿਲਾਂ ਲਾਗੂ ਹੁੰਦਾ ਹੈ, ਭਾਵੇਂ ਤੁਸੀਂ ਕੋਡ ਵਿੱਚ ਕੋਈ ਵੀ ਆਰਡਰ ਨਿਰਧਾਰਤ ਕੀਤਾ ਹੋਵੇ।
"ਦੇਰੀ" ਦੀ ਵਰਤੋਂ ਨਾਨ-ਬਲੌਕਿੰਗ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਲਈ `defer` ਐਟਰੀਬਿਊਟ ਜੋੜ ਕੇ ਪ੍ਰਾਪਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਸਕ੍ਰਿਪਟ ਉਦੋਂ ਤੱਕ ਉਡੀਕ ਕਰੇਗੀ ਜਦੋਂ ਤੱਕ ਪੂਰੇ ਪੰਨੇ ਨੂੰ ਐਗਜ਼ੀਕਿਊਟ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਪਾਰਸ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ, ਅਤੇ ਮਹੱਤਵਪੂਰਨ ਤੌਰ 'ਤੇ, ਇਹ ਅਸਲ ਕ੍ਰਮ ਨੂੰ ਬਣਾਈ ਰੱਖੇਗਾ ਜਿਸ ਵਿੱਚ ਤੁਸੀਂ ਇਸਨੂੰ ਲਿਖਿਆ ਸੀ। ਇਹ ਕਾਫ਼ੀ ਉਪਭੋਗਤਾ-ਅਨੁਕੂਲ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਨਾ ਤਾਂ ਪਹਿਲੀ ਸਕ੍ਰੀਨ ਨੂੰ ਬਲੌਕ ਕਰਦਾ ਹੈ ਅਤੇ ਨਾ ਹੀ ਸਕ੍ਰਿਪਟ ਦੇ ਕ੍ਰਮ ਵਿੱਚ ਵਿਘਨ ਪਾਉਂਦਾ ਹੈ।
ਮੈਨੂੰ ਕਿਹੜਾ ਚੁਣਨਾ ਚਾਹੀਦਾ ਹੈ?
ਸੌਖੇ ਸ਼ਬਦਾਂ ਵਿੱਚ, ਇਹ ਚਾਰ ਵਿਕਲਪ ਇੱਕ ਬਹੁ-ਵਿਕਲਪੀ ਸਵਾਲ ਵਾਂਗ ਹਨ: ਕੀ ਤੁਸੀਂ ਗਤੀ ਚਾਹੁੰਦੇ ਹੋ, ਜਾਂ ਕੀ ਤੁਸੀਂ ਆਰਡਰ ਚਾਹੁੰਦੇ ਹੋ?
ਮੇਰਾ ਸੁਝਾਅ ਇਸ ਪ੍ਰਕਾਰ ਹੈ:
ਜੇਕਰ ਤੁਹਾਡੀ ਵੈੱਬਸਾਈਟ ਛੋਟੀ ਹੈ, ਇਸ ਵਿੱਚ ਕੁਝ ਸਕ੍ਰਿਪਟਾਂ ਹਨ, ਅਤੇ ਤੁਹਾਡੇ ਕੋਲ ਲੋਡਿੰਗ ਸਪੀਡ ਲਈ ਬਹੁਤ ਜ਼ਿਆਦਾ ਲੋੜਾਂ ਨਹੀਂ ਹਨ, ਤਾਂ ਡਿਫੌਲਟ (ਬਲੌਕਡ) ਸੈਟਿੰਗ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਸਭ ਤੋਂ ਆਸਾਨ ਵਿਕਲਪ ਹੈ। ਹਾਲਾਂਕਿ ਇਹ ਥੋੜ੍ਹਾ ਹੌਲੀ ਹੈ, ਇਸ ਨਾਲ ਕੋਈ ਸਮੱਸਿਆ ਨਹੀਂ ਆਵੇਗੀ।
ਜੇਕਰ ਤੁਸੀਂ ਪਹਿਲੀ-ਸਕ੍ਰੀਨ ਦੀ ਗਤੀ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ ਅਤੇ ਤੁਹਾਡੀਆਂ ਸਕ੍ਰਿਪਟਾਂ ਵਿੱਚ "A must execute before B" ਵਰਗੀ ਮਜ਼ਬੂਤ ਨਿਰਭਰਤਾ ਨਹੀਂ ਹੈ, ਤਾਂ ਗੈਰ-ਬਲਾਕਿੰਗ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਲਈ "defer" ਦੀ ਵਰਤੋਂ ਨੂੰ ਤਰਜੀਹ ਦਿਓ । ਇਹ ਵਰਤਮਾਨ ਵਿੱਚ ਉਪਲਬਧ ਲਗਭਗ ਆਦਰਸ਼ ਹੱਲ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਦੇ ਕ੍ਰਮ ਨੂੰ ਬਣਾਈ ਰੱਖਦੇ ਹੋਏ ਰੈਂਡਰਿੰਗ ਨੂੰ ਬਲੌਕ ਕਰਨ ਤੋਂ ਬਚਦਾ ਹੈ।
ਜੇਕਰ ਤੁਹਾਨੂੰ ਲੱਗਦਾ ਹੈ ਕਿ defer ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਤੋਂ ਬਾਅਦ ਵੀ ਕੁਝ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਸਮੱਸਿਆਵਾਂ ਹਨ, ਤਾਂ ਗੈਰ-ਬਲਾਕਿੰਗ ਲਈ JavaScript ਦੀ ਵਰਤੋਂ ਕਰਨ ' ਤੇ ਵਿਚਾਰ ਕਰੋ । ਇਹ ਪਹੁੰਚ ਵਧੇਰੇ ਹਮਲਾਵਰ ਹੈ, ਪਰ ਇਸਦੀ ਅਨੁਕੂਲਤਾ ਥੋੜ੍ਹੀ ਮਾੜੀ ਹੈ।
"ਅਸਿੰਕ" ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਉਹ ਵਿਕਲਪ ਹੈ ਜੋ ਮੈਂ ਘੱਟੋ ਘੱਟ ਸਿਫ਼ਾਰਸ਼ ਕਰਦਾ ਹਾਂ। ਕਿਉਂਕਿ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਆਰਡਰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਗੜਬੜਿਆ ਹੋਇਆ ਹੈ, ਇਸ ਲਈ ਇਸਨੂੰ ਕਰੈਸ਼ ਕਰਨਾ ਆਸਾਨ ਹੈ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਯਕੀਨੀ ਨਹੀਂ ਹੋ ਕਿ ਤੁਹਾਡੀਆਂ ਸਕ੍ਰਿਪਟਾਂ ਸੁਤੰਤਰ ਤੌਰ 'ਤੇ ਚੱਲਦੀਆਂ ਹਨ।
ਦੋ ਵੱਡੀਆਂ ਖੱਡਾਂ ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਮੈਂ ਫਸ ਗਿਆ
ਗੱਲਾਂ ਕਰਨਾ ਸਸਤਾ ਹੈ। ਮੈਂ ਆਪਣੀਆਂ ਦੋ ਗਲਤੀਆਂ ਲਿਖ ਲਈਆਂ ਹਨ; ਤੁਸੀਂ ਉਨ੍ਹਾਂ ਨੂੰ ਆਪਣੇ ਤਜਰਬੇ ਨਾਲ ਦੇਖ ਸਕਦੇ ਹੋ ਕਿ ਕੀ ਤੁਸੀਂ ਉਨ੍ਹਾਂ ਤੋਂ ਬਚ ਸਕਦੇ ਹੋ।
ਪਹਿਲਾ ਨੁਕਸਾਨ: ਕਸਟਮ ਵਰਡਪ੍ਰੈਸ ਥੀਮਾਂ ਦਾ ਰੀਅਲ ਟਾਈਮ ਵਿੱਚ ਪੂਰਵਦਰਸ਼ਨ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ।
ਕੁਝ ਸਮੇਂ ਲਈ, ਜਦੋਂ ਕਿਸੇ ਥੀਮ ਨੂੰ ਅਨੁਕੂਲਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਸੇਵ 'ਤੇ ਕਲਿੱਕ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਪ੍ਰੀਵਿਊ ਰਿਫ੍ਰੈਸ਼ ਨਹੀਂ ਹੁੰਦਾ। ਮੈਂ ਕੁਝ ਬਦਲਾਅ ਕਰਾਂਗਾ, ਪੰਨੇ ਨੂੰ ਰਿਫ੍ਰੈਸ਼ ਕਰਾਂਗਾ, ਅਤੇ ਇਹ ਅਜੇ ਵੀ ਉਹੀ ਰਹੇਗਾ।
ਕੁਝ ਜਾਂਚ ਤੋਂ ਬਾਅਦ, ਮੈਨੂੰ ਪਤਾ ਲੱਗਾ ਕਿ Minify ਦਾ ਕੰਪ੍ਰੈਸ਼ਨ ਫੰਕਸ਼ਨ ਦੋਸ਼ੀ ਸੀ। ਹੱਲ ਸਰਲ ਹੈ:
W3 ਟੋਟਲ ਕੈਸ਼ ਪਲੱਗਇਨ ਦੀਆਂ ਜਨਰਲ ਸੈਟਿੰਗਾਂ 'ਤੇ ਜਾਓ, "ਕੰਪ੍ਰੈਸ਼ਨ" ਵਿਕਲਪ ਲੱਭੋ , ਅਤੇ ਇਸਨੂੰ ਅਨਚੈਕ ਕਰੋ। ਫਿਰ, ਉੱਪਰ ਸੱਜੇ ਕੋਨੇ ਵਿੱਚ "ਸੇਵ ਸੈਟਿੰਗਜ਼" ਦੇ ਹੇਠਾਂ ਛੋਟੇ ਤੀਰ 'ਤੇ ਕਲਿੱਕ ਕਰੋ, ਅਤੇ " ਸੇਵ ਸੈਟਿੰਗਜ਼ ਅਤੇ ਕਲੀਅਰ ਕੈਸ਼ " ਚੁਣੋ। ਇਹ ਕਦਮ ਬਹੁਤ ਮਹੱਤਵਪੂਰਨ ਹੈ; ਕੈਸ਼ ਨੂੰ ਕਲੀਅਰ ਕੀਤੇ ਬਿਨਾਂ, ਤੁਸੀਂ ਅਜੇ ਵੀ ਪੁਰਾਣਾ ਸੰਸਕਰਣ ਦੇਖ ਸਕੋਗੇ।
ਜਦੋਂ ਤੁਸੀਂ ਇਹ ਕੰਮ ਪੂਰਾ ਕਰ ਲੈਂਦੇ ਹੋ, ਤਾਂ ਥੀਮ ਕਸਟਮਾਈਜ਼ੇਸ਼ਨ 'ਤੇ ਵਾਪਸ ਜਾਓ, ਅਤੇ ਲਾਈਵ ਪ੍ਰੀਵਿਊ ਆਮ ਵਾਂਗ ਵਾਪਸ ਆ ਜਾਵੇਗਾ।
ਦੂਜੀ ਸਮੱਸਿਆ: ਐਸਟਰਾ ਥੀਮ ਸਰਚ ਬਾਕਸ ਕਲਿੱਕ ਕਰਨ 'ਤੇ ਜਵਾਬ ਨਹੀਂ ਦਿੰਦਾ।
ਮੈਨੂੰ ਇਹ ਸਮੱਸਿਆ ਕਾਫ਼ੀ ਸਮਾਂ ਪਹਿਲਾਂ ਆਈ ਸੀ। ਮੈਂ Astra ਥੀਮ ਦੀ ਵਰਤੋਂ ਕਰ ਰਿਹਾ ਸੀ, ਅਤੇ ਇੱਕ ਦਿਨ ਮੈਨੂੰ ਅਚਾਨਕ ਪਤਾ ਲੱਗਾ ਕਿ ਸਰਚ ਬਾਕਸ ਜਵਾਬ ਨਹੀਂ ਦੇ ਰਿਹਾ ਸੀ ਭਾਵੇਂ ਮੈਂ ਇਸਨੂੰ ਕਿੰਨੇ ਵੀ ਕਲਿੱਕ ਕੀਤਾ ਹੋਵੇ। ਪਹਿਲਾਂ ਤਾਂ ਮੈਨੂੰ ਲੱਗਿਆ ਕਿ ਇਹ ਥੀਮ ਨਾਲ ਹੀ ਸਮੱਸਿਆ ਹੈ, ਪਰ ਬਾਅਦ ਵਿੱਚ ਮੈਨੂੰ ਪਤਾ ਲੱਗਾ ਕਿ ਇਹ W3TC ਦੀਆਂ Minify ਸੈਟਿੰਗਾਂ ਕਾਰਨ ਹੋਇਆ ਹੈ।
ਹੱਲ ਇਸ ਪ੍ਰਕਾਰ ਹੈ:
W3 ਟੋਟਲ ਕੈਸ਼ → ਜਨਰਲ ਸੈਟਿੰਗਜ਼ → ਐਡਵਾਂਸਡ ਕੰਪਰੈਸ਼ਨ ਸੈਟਿੰਗਜ਼ → JS → ਮਿਨੀਫਾਈ ਇੰਜਣ ਸੈਟਿੰਗਜ਼ → ਲੋਕੇਲ ਸੈਟਿੰਗਜ਼ 'ਤੇ ਜਾਓ, ਅਤੇ ਏਮਬੈਡਿੰਗ ਕਿਸਮ ਨੂੰ ਇਹਨਾਂ ਦੋਵਾਂ ਵਿੱਚੋਂ ਇੱਕ ਵਿੱਚ ਬਦਲੋ:
- ਪਹਿਲਾਂ, ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਗੈਰ-ਬਲਾਕਿੰਗ ਪ੍ਰਾਪਤ ਕੀਤੀ ਜਾਂਦੀ ਸੀ।
- ਇਸ ਤੋਂ ਬਾਅਦ, ਗੈਰ-ਬਲਾਕਿੰਗ ਲਈ JS ਦੀ ਵਰਤੋਂ ਕਰੋ
ਇਸੇ ਤਰ੍ਹਾਂ, ਕੈਸ਼ ਸਾਫ਼ ਕਰਨ ਅਤੇ ਪੰਨੇ ਨੂੰ ਤਾਜ਼ਾ ਕਰਨ ਨਾਲ ਖੋਜ ਬਾਕਸ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰੇਗਾ।
ਜਿੱਥੋਂ ਤੱਕ ਇਹ ਦੋ ਵਿਕਲਪ ਦੂਜਿਆਂ ਦੀ ਬਜਾਏ ਕਿਉਂ ਚੁਣੇ ਗਏ ਸਨ, ਮੈਂ ਕੁਝ ਖੋਜ ਕੀਤੀ ਹੈ। ਸਿੱਧੇ ਸ਼ਬਦਾਂ ਵਿੱਚ, Astra ਥੀਮ ਦੇ ਫਰੰਟ-ਐਂਡ ਹਿੱਸੇ ਸਕ੍ਰਿਪਟ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਦੇ ਸਮੇਂ ਪ੍ਰਤੀ ਕਾਫ਼ੀ ਸੰਵੇਦਨਸ਼ੀਲ ਹਨ, ਅਤੇ ਕੁਝ ਗੈਰ-ਬਲਾਕਿੰਗ ਵਿਧੀਆਂ ਇਵੈਂਟ ਬਾਈਡਿੰਗ ਨੂੰ ਅਸਫਲ ਕਰ ਸਕਦੀਆਂ ਹਨ। "JS ਨਾਲ ਗੈਰ-ਬਲਾਕਿੰਗ" ਮੋਡ ਦੀ ਵਰਤੋਂ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਸਕ੍ਰਿਪਟ ਪੰਨੇ ਦੇ ਲੋਡ ਹੋਣ ਤੋਂ ਬਾਅਦ ਹੀ ਚੱਲਦੀ ਹੈ, ਜਦੋਂ ਕਿ ਅਸਿੰਕ ਨਾਲ ਦੇਖੇ ਜਾਣ ਵਾਲੇ ਵਿਗਾੜ ਵਾਲੇ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਤੋਂ ਬਚਿਆ ਜਾਂਦਾ ਹੈ।
ਜਾਣ ਵਾਲੀਆਂ ਥਾਵਾਂ ਦੀ ਸੂਚੀ
ਅੰਤ ਵਿੱਚ, ਇੱਥੇ ਇੱਕ ਚੈੱਕਲਿਸਟ ਹੈ ਜਿਸਦੀ ਤੁਸੀਂ ਸਿੱਧੇ ਪਾਲਣਾ ਕਰ ਸਕਦੇ ਹੋ:
ਪਹਿਲਾ ਕਦਮ ਆਪਣੇ ਟੀਚੇ ਨੂੰ ਸਪੱਸ਼ਟ ਕਰਨਾ ਹੈ। ਕੀ ਤੁਸੀਂ ਸਭ ਤੋਂ ਤੇਜ਼ ਸ਼ੁਰੂਆਤੀ ਪੰਨਾ ਲੋਡ ਚਾਹੁੰਦੇ ਹੋ, ਜਾਂ ਕੀ ਤੁਸੀਂ ਸਥਿਰਤਾ ਅਤੇ ਗਲਤੀ-ਮੁਕਤ ਸੰਚਾਲਨ ਨੂੰ ਤਰਜੀਹ ਦਿੰਦੇ ਹੋ? ਇਹ ਨਿਰਧਾਰਤ ਕਰੇਗਾ ਕਿ ਤੁਹਾਨੂੰ ਕਿਸ ਏਮਬੈਡਿੰਗ ਕਿਸਮ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ।
ਦੂਜਾ ਕਦਮ ਇਹ ਹੈ ਕਿ ਸਭ ਕੁਝ ਇੱਕੋ ਵਾਰ ਨਾ ਬਦਲੋ। ਪਹਿਲਾਂ, ਇਸਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਇੱਕ ਘੱਟ ਮਹੱਤਵਪੂਰਨ ਪੰਨਾ ਲੱਭੋ, ਇਸਨੂੰ ਇੱਕ ਜਾਂ ਦੋ ਦਿਨਾਂ ਲਈ ਦੇਖੋ, ਅਤੇ ਇਸਨੂੰ ਪੂਰੀ ਸਾਈਟ 'ਤੇ ਸਿਰਫ਼ ਤਾਂ ਹੀ ਪ੍ਰਚਾਰ ਕਰੋ ਜੇਕਰ ਤੁਹਾਨੂੰ ਯਕੀਨ ਹੈ ਕਿ ਕੋਈ ਸਮੱਸਿਆ ਨਹੀਂ ਹੈ।
ਤੀਜਾ, ਹਰ ਸੋਧ ਤੋਂ ਬਾਅਦ ਹਮੇਸ਼ਾ ਕੈਸ਼ ਸਾਫ਼ ਕਰੋ। W3TC ਦਾ ਕੈਸ਼ਿੰਗ ਵਿਧੀ ਤੁਹਾਨੂੰ ਨਵੀਨਤਮ ਤਬਦੀਲੀਆਂ ਦੇਖਣ ਤੋਂ ਰੋਕੇਗੀ, ਇਸ ਲਈ "ਕੈਸ਼ ਸਾਫ਼ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਜਾਂਚ ਕਰੋ" ਕਦਮ ਬਿਲਕੁਲ ਜ਼ਰੂਰੀ ਹੈ।
ਚੌਥਾ, ਪਹਿਲਾਂ ਅਤੇ ਬਾਅਦ ਵਿੱਚ ਲੋਡਿੰਗ ਸਪੀਡ ਦੀ ਤੁਲਨਾ ਕਰਨ ਲਈ ਆਪਣੇ ਬ੍ਰਾਊਜ਼ਰ ਦੇ ਡਿਵੈਲਪਰ ਟੂਲਸ ਜਾਂ ਪੇਜਸਪੀਡ ਇਨਸਾਈਟਸ ਵਰਗੇ ਟੂਲਸ ਦੀ ਵਰਤੋਂ ਕਰੋ। ਡੇਟਾ ਨੂੰ ਆਪਣੇ ਆਪ ਬੋਲਣ ਦਿਓ, ਨਾ ਕਿ ਸਿਰਫ਼ ਤੁਹਾਡੀ ਅੰਤੜੀ ਦੀ ਭਾਵਨਾ ਨੂੰ।
ਅੰਤ 'ਤੇ ਲਿਖੋ
ਸੱਚ ਕਹਾਂ ਤਾਂ, ਜਦੋਂ ਮੈਂ ਪਹਿਲੀ ਵਾਰ ਇਸ ਏਮਬੈਡਡ ਟਾਈਪ ਸੈਟਿੰਗ ਨੂੰ ਦੇਖਿਆ, ਤਾਂ ਮੈਂ ਕਾਫ਼ੀ ਦੇਰ ਤੱਕ ਹੈਰਾਨ ਰਹਿ ਗਿਆ। ਡਿਫਾਲਟ ਬਲਾਕਿੰਗ ਮੋਡ ਬਹੁਤ ਹੌਲੀ ਜਾਪਦਾ ਸੀ, ਜਦੋਂ ਕਿ ਅਸਿੰਕ੍ਰੋਨਸ ਮੋਡ ਓਪਰੇਸ਼ਨਾਂ ਦੇ ਕ੍ਰਮ ਦੀ ਗਰੰਟੀ ਨਹੀਂ ਦਿੰਦਾ ਸੀ, ਅਤੇ ਮੁਲਤਵੀ ਕਰਨ ਨਾਲ ਅਨੁਕੂਲਤਾ ਸਮੱਸਿਆਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੈਨੂੰ ਇਸ ਬਾਰੇ ਅਨਿਸ਼ਚਿਤ ਮਹਿਸੂਸ ਹੋਇਆ ਕਿ ਕਿਹੜਾ ਵਿਕਲਪ ਚੁਣਨਾ ਹੈ।
ਪਰ ਮੈਨੂੰ ਬਾਅਦ ਵਿੱਚ ਅਹਿਸਾਸ ਹੋਇਆ ਕਿ ਇਹ ਇੱਕ ਵਪਾਰ ਹੈ। ਤੁਹਾਡੇ ਕੋਲ ਸਭ ਤੋਂ ਤੇਜ਼ ਅਤੇ ਸਭ ਤੋਂ ਸਥਿਰ ਦੋਵੇਂ ਨਹੀਂ ਹੋ ਸਕਦੇ; ਤੁਹਾਨੂੰ ਹਮੇਸ਼ਾ ਇੱਕ ਦੀ ਕੁਰਬਾਨੀ ਦੇਣੀ ਪੈਂਦੀ ਹੈ। ਮੇਰਾ ਤਜਰਬਾ ਇਹ ਹੈ ਕਿ ਪਹਿਲਾਂ defer ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਵੇ, ਜੋ ਕਿ ਵਰਤਮਾਨ ਵਿੱਚ ਸਭ ਤੋਂ ਸੁਰੱਖਿਅਤ ਗੈਰ-ਬਲਾਕਿੰਗ ਹੱਲ ਹੈ, ਅਤੇ ਫਿਰ ਜੇਕਰ ਸਮੱਸਿਆਵਾਂ ਪੈਦਾ ਹੁੰਦੀਆਂ ਹਨ ਤਾਂ ਕਾਲਬੈਕ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਵੇ।
ਜੇਕਰ ਤੁਹਾਨੂੰ ਵੀ ਇਸੇ ਤਰ੍ਹਾਂ ਦੀਆਂ ਸਮੱਸਿਆਵਾਂ ਆਉਂਦੀਆਂ ਹਨ, ਜਾਂ ਜੇਕਰ ਮੇਰੇ ਤਰੀਕੇ ਦੀ ਪਾਲਣਾ ਕਰਨ ਤੋਂ ਬਾਅਦ ਵੀ ਤੁਹਾਨੂੰ ਹੋਰ ਸਮੱਸਿਆਵਾਂ ਹਨ, ਤਾਂ ਇਸ ਬਾਰੇ ਚਰਚਾ ਕਰਨ ਲਈ ਬੇਝਿਜਕ ਮਹਿਸੂਸ ਕਰੋ। ਵੈੱਬਸਾਈਟ ਵਿਕਾਸ ਪੂਰੀ ਤਰ੍ਹਾਂ ਅਜ਼ਮਾਇਸ਼ ਅਤੇ ਗਲਤੀ ਬਾਰੇ ਹੈ; ਕੋਈ ਵੀ ਇਸਦਾ ਅਪਵਾਦ ਨਹੀਂ ਹੈ।
ਮੇਰਾ ਲੇਖ ਪੜ੍ਹਨ ਲਈ ਧੰਨਵਾਦ। ਅਗਲੀ ਵਾਰ ਮਿਲਦੇ ਹਾਂ।
ਮੈਨੂੰ ਉਮੀਦ ਹੈ ਕਿ ਚੇਨ ਵੇਇਲਿਯਾਂਗ ਦੇ ਬਲੌਗ ( https://www.chenweiliang.com/ ) 'ਤੇ ਸਾਂਝਾ ਕੀਤਾ ਗਿਆ ਲੇਖ "W3 ਟੋਟਲ ਕੈਸ਼ ਮਿਨੀਫਾਈ ਪਲੱਗਇਨ ਸੈਟਿੰਗਜ਼: ਏਮਬੈਡਿੰਗ ਕਿਸਮ ਕਿਵੇਂ ਚੁਣੀਏ? ਮੇਰੇ ਨੁਕਸਾਨ ਅਤੇ ਜੀਵਨ ਬਚਾਉਣ ਦੀ ਸਲਾਹ" ਤੁਹਾਡੇ ਲਈ ਮਦਦਗਾਰ ਹੋਵੇਗਾ।
ਇਸ ਲੇਖ ਦਾ ਲਿੰਕ ਸਾਂਝਾ ਕਰਨ ਲਈ ਬੇਝਿਜਕ ਮਹਿਸੂਸ ਕਰੋ: https://www.chenweiliang.com/cwl-34003.html
