လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Get_Client_Version ကို Dynamly ဗားရှင်းဗားရှင်းကွဲပြားခြားနားသောဗားရှင်းများကို dynamically load လုပ်ပါ

Get_Client_Version ကို Dynamly ဗားရှင်းဗားရှင်းကွဲပြားခြားနားသောဗားရှင်းများကို dynamically load လုပ်ပါ

gitbox 2025-05-11

မျက်မှောက်ခေတ် Web Development တွင်မတူညီသော client များသို့မဟုတ်အသုံးပြုသူများသည်ရှေ့တန်းအရင်းအမြစ်များ၏ကွဲပြားခြားနားသောဗားရှင်းများကိုဖွင့်ရန်လိုအပ်နိုင်သည်။ ဥပမာအားဖြင့်, သင်သည်မိုဘိုင်းအတွက်ပေါ့ပါးသော scripts များကို 0 န်ဆောင်မှုပေးလိုခြင်း,

အောင်မြင်ရန် Get_Client_version ဟုခေါ်သော PHP function ကိုကျွန်ုပ်တို့ရေးနိုင်သည်။

1 ။ function ဒီဇိုင်းရည်ရွယ်ချက်များ

Get_Client_Version () function ကို၏အဓိကလုပ်ဆောင်ချက်မှာ -

  • client အချက်အလက်ကိုရှာဖွေတွေ့ရှိခြင်း (ဥပမာအသုံးပြုသူကိုယ်စားလှယ်များ, ကွတ်ကီးများ, cookies များ,

  • ရှေ့မျက်နှာပြင်၏ဗားရှင်းနံပါတ်ကိုပြန်ပို့သည်။

  • version နံပါတ်အရ (ဥပမာ JS, CSS Fils) (ဥပမာ JS, CSS ဖိုင်များ) ကို splice;

2 ။ နမူနာကုဒ်အကောင်အထည်ဖော်မှု

Function Deforming နှင့်အရင်းအမြစ် Loading Logic အပါအ 0 င်အပြည့်အဝဥပမာတစ်ခုမှာ -

 <?php

/**
 * client ကို 0 န်ဆောင်မှုပေးရန်လိုအပ်သည်ဟုရှေ့အဆင့်ဗားရှင်းဗားရှင်းကိုရယူပါ
 * အပေါ်အခြေခံနိုင်ပါတယ် User-Agent、Cookie、ပိုမိုရှုပ်ထွေးသောတရားစီရင်ခြင်းယုတ္တိဗေဒကိုအကောင်အထည်ဖော်ရန်အတွက် parameters များနှင့်အခြားနည်းလမ်းများတောင်းဆိုခြင်း
 */
function get_client_version(): string {
    // ရိုးရှင်းသောဥပမာ:အရ URL parameters တွေကိုသတ်မှတ်ထားသောဗားရှင်းအတင်း
    if (isset($_GET['ver'])) {
        return preg_replace('/[^a-zA-Z0-9_\-\.]/', '', $_GET['ver']);
    }

    // နမူနာ:သွား User-Agent ၎င်းသည်မိုဘိုင်းစက်ရှိမရှိဆုံးဖြတ်ပါ
    $userAgent = $_SERVER['HTTP_USER_AGENT'] ?? '';
    if (stripos($userAgent, 'Mobile') !== false) {
        return 'mobile_v2.1';
    }

    // ပုံမှန်ဗားရှင်း
    return 'desktop_v1.0';
}

/**
 * တည်ငြိမ်သောအရင်းအမြစ်များကိုပြည့်စုံအောင်တည်ဆောက်ပါ URL
 */
function asset_url(string $path): string {
    $version = get_client_version();
    return "https://gitbox.net/assets/{$version}/{$path}";
}

// 使用နမူနာ
$jsUrl  = asset_url('app.js');
$cssUrl = asset_url('style.css');

?>

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>动态加载资源နမူနာ</title>
    <link rel="stylesheet" href="<?php echo htmlspecialchars($cssUrl); ?>">
</head>
<body>

<h1>Dynud ဗားရှင်းအရင်းအမြစ်စနစ်မှကြိုဆိုပါသည်</h1>
<p>လက်ရှိအရင်းအမြစ်ဗားရှင်း:<?php echo htmlspecialchars(get_client_version()); ?></p>

<script src="<?php echo htmlspecialchars($jsUrl); ?>"></script>
</body>
</html>

3 ။ အကျိုးသက်ရောက်မှုဖော်ပြချက်

အထက်ပါကုဒ်သည် visit ည့်သည်၏ client information သို့မဟုတ်ဝင်လာသော ver parameters များကို အခြေခံ. မည်သည့်အပြီးသတ်အရင်းအမြစ်ဗားရှင်း၏မည်သည့်ဗားရှင်းကို dynamically ဆုံးဖြတ်လိမ့်မည်။ ဥပမာအားဖြင့်:

  • https://gitbox.net/index.php?ver=test123
    https://gitbox.net/sets/test123/app.js

  • Mobile Device Access → Loading: https://gitbox.net/assets/mobile_v2.11.App.js

  • desktop device ကို default → loading: https://gitbox.net/assets/desktop_v1.0/app.js

4 ။ နောက်ထပ် optimization အကြံပြုချက်များ

  • Cache ၏မဟာဗျူဟာ - စွမ်းဆောင်ရည်တိုးတက်စေရန် CDN နှင့် browser cache ကိုကျိုးကြောင်းဆီလျော်စွာသတ်မှတ်ထားခြင်း,

  • အရင်းအမြစ်စီမံခန့်ခွဲမှုစီမံခန့်ခွဲမှုစနစ် - ဗားရှင်းနံပါတ်များကို git tags များနှင့်ပေါင်းစပ်ခြင်းသို့မဟုတ်တည်ဆောက်ခြင်းကိရိယာများကိုအလိုအလျောက်ထုတ်လုပ်ခြင်း,

  • လုံခြုံရေး - လမ်းကြောင်းဆေးထိုးတိုက်ခိုက်မှုများကိုတားဆီးရန် input version နံပါတ်ကိုတင်းကြပ်စွာ filter လုပ်ပါ။

  • FORDBACK မဟာဗျူဟာ - သယံဇာတတင်ခြင်းမအောင်မြင်သည့်အခါ decoveration ဖြေရှင်းချက်ကိုပေးပါ။

5 ။ အကျဉ်းချုပ်

Get_Client_Version_Version function ကိုမှတစ်ဆင့်ရှေ့တန်းအဆင့်ဗျူဟာ၏မဟာဗျူဟာ၏မဟာဗျူဟာ၏မဟာဗျူဟာကိုသင်ထိန်းချုပ်နိုင်သည်။ ဤနည်းလမ်းသည်အသုံးပြုသူအတွေ့အကြုံကိုတိုးတက်စေရုံသာမကရှေ့တွင်ဖြန့်ကျက်ခြင်းနှင့် A / B စစ်ဆေးခြင်းအတွက်အလွန်အဆင်ပြေပါသည်။

သင့်တွင်ဘာသာစကားပေါင်းစုံနှင့်မျိုးစုံအထောက်အပံ့ကဲ့သို့သောရှုပ်ထွေးမှုများပိုမိုများပြားသောလိုအပ်ချက်များရှိပါကသင်၏ရှေ့တွင်အရင်းအမြစ်စီမံခန့်ခွဲမှုနှင့်ပိုမိုထိရောက်စေရန်နှင့်ပိုမိုထိရောက်စေရန်ဤတွင်လည်းတိုးချဲ့နိုင်သည်။