আমি কিভাবে ব্রাউজার CSS এবং জাভাস্ক্রিপ্ট পরিবর্তন দেখতে পারি?

সিএসএস এবং জাভাস্ক্রিপ্ট ফাইল খুব প্রায়ই পরিবর্তন হয় না, তাই আমি তাদের ওয়েব ব্রাউজার দ্বারা ক্যাশে করা চাই। কিন্তু আমি চাই ওয়েব ব্রাউজার ব্যবহারকারীদের তাদের ব্রাউজার ক্যাশ পরিষ্কার করার প্রয়োজন ছাড়া এই ফাইলগুলিতে করা পরিবর্তনগুলি দেখতে। এছাড়াও একটি সমাধান চান যা সংস্করণ নিয়ন্ত্রণ সিস্টেম যেমন সাবভারশন হিসাবে ভাল কাজ করে।


কিছু সমাধান আমি দেখেছি একটি সংস্করণ সংখ্যা একটি ফাইলের শেষে একটি ক্যোয়ারী স্ট্রিং আকারে যোগ করা।

     

আপনার জন্য এটি স্বয়ংক্রিয় করার জন্য SVN সংস্করণ সংখ্যা ব্যবহার করতে পারে: ASP.NET প্রদর্শন SVN পুনর্বিবেচনা সংখ্যা ?

আপনি কিভাবে সংশোধন / অন্য ফাইলের পরিবর্তনশীল? এটি এইচটিএমএল ফাইলের মধ্যে রয়েছে আমি CSS বা জাভাস্ক্রিপ্ট ফাইলের URL তে সংশোধন সংখ্যা অন্তর্ভুক্ত করতে পারি।

সাবউভারেশন বুক -এ এটি সংশোধন সম্পর্কে বলছে: "এই কীওয়ার্ডটি সর্বশেষ তথ্যে পুনর্বিবেচনা করে যা এই ফাইলটি পরিবর্তিত হয়েছে রিপোজিটরি "

ফায়ারফক্স একটি নির্দিষ্ট পৃষ্ঠায় সবকিছু পুনরায় লোড করার জন্য CTRL + R চাপানোর অনুমতি দেয়।

স্পষ্ট করার জন্য আমি সমাধান খুঁজছি যে ব্যবহারকারীদের তাদের অংশে কিছু করার প্রয়োজন হয় না।

0
ro fr hi

5 উত্তর

কিছু সমাধান আমি একটি পরিসংখ্যান স্ট্রিং আকারে ফাইলের শেষে একটি সংস্করণ নম্বর যোগ জড়িত দেখেছি।

<script type="text/javascript" src="funkycode.js?v1">

আপনি এই শব্দটি অন্তর্ভুক্ত করে আপনার জন্য স্বয়ংক্রিয়ভাবে SVN পুনর্বিবেচনা নম্বরটি ব্যবহার করতে পারেন সর্বশেষ পরিবর্তনকৃত রিভিশন আপনার এইচটিএমএল ফাইলের পরে যেখানে v1 উপরে প্রদর্শিত হবে। আপনি এই কাজ করার জন্য আপনার সংগ্রহস্থল স্থাপন করা আবশ্যক।

আমি এই আরও উত্তর আমার উত্তর ব্যাখ্যা আশা করি?

ফায়ারফক্স একটি নির্দিষ্ট পৃষ্ঠায় সবকিছু পুনরায় লোড করার জন্য CTRL + R চাপানোর অনুমতি দেয়।

0
যোগ

আমি দেখেছি যে যদি আপনি URL এর শেষের শেষে ফাইলের সর্বশেষ সংশোধিত সময়সীমা যুক্ত করেন তবে ব্রাউজারটি যখন সংশোধন করা হয় তখন ফাইলগুলি অনুরোধ করবে। উদাহরণস্বরূপ পিএইচপি:

function urlmtime($url) {
   $parsed_url = parse_url($url);
   $path = $parsed_url['path'];

   if ($path[0] == "/") {
       $filename = $_SERVER['DOCUMENT_ROOT'] . "/" . $path;
   } else {
       $filename = $path;
   }

   if (!file_exists($filename)) {
       // If not a file then use the current time
       $lastModified = date('YmdHis');
   } else {
       $lastModified = date('YmdHis', filemtime($filename));
   }

   if (strpos($url, '?') === false) {
       $url .= '?ts=' . $lastModified;
   } else {
       $url .= '&ts=' . $lastModified;
   }

   return $url;
}

function include_css($css_url, $media='all') {
   // According to Yahoo, using link allows for progressive 
   // rendering in IE where as @import url($css_url) does not
   echo '<link rel="stylesheet" type="text/css" media="' .
        $media . '" href="' . urlmtime($css_url) . '">'."\n";
}

function include_javascript($javascript_url) {
   echo '<script type="text/javascript" src="' . urlmtime($javascript_url) .
        '"></script>'."\n";
}
0
যোগ
@ বেনমসিয়া, আপনি কি CSS ফাইলে অনুরোধ করার সময় কি HTTP শিরোলেখ ফেরত পাচ্ছেন?
যোগ লেখক grom, উৎস
হাই গ্রোম, আমি এই পদ্ধতি চেষ্টা করেছি। যাইহোক, আমি খুঁজে পেয়েছি যে একবার আমি প্যারামিটার অন্তর্ভুক্ত ব্রাউজার CSS ফাইল ক্যাশে না। এটি CSS ফাইলটিকে আমি যখন ক্যাশে ছাড়াই পৃষ্ঠাটি পুনর্বিবেচনা করি তখন প্রতিটি লোড করে। ব্রাউজার দ্বারা সিএসএস ফাইল ক্যাশ করছে কি না তা দেখতে CSS ফাইলের পরিবর্তন করার সময় আমি এটি সনাক্ত করেছি। আমি ক্রোম ব্যবহার করছি আমি কি জানতে পারি ব্রাউজার ক্যাশে CSS ফাইলে কিভাবে তৈরি করবেন এবং প্যারামিটারের পরিবর্তনের সময় কেবল লোড করবেন? ধন্যবাদ.
যোগ লেখক davidlee, উৎস

আমার মতে, ফাইলের সংস্করণ সংখ্যাটি অংশীদারি করা আরও ভাল। <�কোড> myscript.1.2.3.js </কোড>। আপনি এই ওয়েবসাইটটি চিরতরে ক্যাশে করতে আপনার ওয়েব সার্ভার সেট করতে পারেন, এবং যখন আপনার একটি নতুন সংস্করণ থাকে তখন একটি নতুন জেএস ফাইল যোগ করুন।

0
যোগ

আমি এটা কিভাবে চিন্তা করতে পারে, আমি যখন grom এর উত্তর পাওয়া। কোডের জন্য ধন্যবাদ

আমি কোড ব্যবহার করা অনুমিত ছিল কিভাবে বোঝার সঙ্গে লড়াই। (আমি সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ব্যবহার করি না।) সারাংশে, আপনি স্টাইলশীটটি কল করার সময় টাইমস্ট্যাম্প (টিএস) অন্তর্ভুক্ত করেন। আপনি প্রায়ই স্টাইলশীট পরিবর্তন করার পরিকল্পনা করছেন না:

<?php 
    include ('grom_file.php');
    // timestamp on the filename has to be updated manually
    include_css('_stylesheets/style.css?ts=20080912162813', 'all');
?>
0
যোগ
?? include_css ফাংশন url এর শেষে ফাইলের সর্বশেষ সংশোধিত টাইমস্ট্যাম্প যুক্ত করবে। কোন সংস্করণ নিয়ন্ত্রণ প্রয়োজন।
যোগ লেখক grom, উৎস

যখন আপনি আপনার CSS বা JS লাইব্রেরির একটি নতুন সংস্করণ প্রকাশ করবেন, তখন নিম্নলিখিতগুলি ঘটবে:

  1. একটি অনন্য সংস্করণ স্ট্রিং অন্তর্ভুক্ত করার জন্য ফাইলের নাম সংশোধন
  2. এইচটিএমএল ফাইলগুলি সংশোধন করে যা সংস্করণের ফাইলের দিকে নির্দেশ করার জন্য লাইব্রেরির উল্লেখ করে

(এটি সাধারণত একটি মুক্ত স্ক্রিপ্ট জন্য একটি চমত্কার সহজ ব্যাপার)

এখন আপনি CSS / JS এর ​​মেয়াদ শেষ করতে ভবিষ্যতে বছর বজায় রাখতে পারেন। যখনই আপনি বিষয়বস্তু পরিবর্তন করবেন, যদি একটি নতুন ইউআরআই পয়েন্টের জন্য এইচটিএমএল পয়েন্টগুলি নির্দেশ করে তবে ব্রাউজারগুলি আর পুরানো ক্যাশেড কপি ব্যবহার করবে না।

এই ব্যবহারকারীর কিছু প্রয়োজন ছাড়া আপনি চান ক্যাশে আচরণের কারণ।

0
যোগ