zoukankan      html  css  js  c++  java
  • krpano·分组图片地图插件

    基础知识

    该插件应用了scrollarea插件和radar插件.应用scrollarea插件是为了拖动图片超出区域时自动弹回,不至于拖拽时那么生硬 应用radar插件则是保持活动热点区域的扇形与场景保持一致

    完整代码
    <krpano>
    <!-- qmaplayer设置 -->
        <maplayer name="qmaplayer_container">
            <map_group name="qmap_group_1" url="%SWFPATH%/mapimg/map.jpg" map_min_zoom="0.5" map_max_zoom="1.2" zoom="1" current="true" text="一楼" btn_x="0">
                <spot name="qmap_spot_1" style="qmap_spot_style" textstyle="qmap_spot_text_style" prefix="" suffix="" lat="600" lng="300" heading="90" scene="scene_2___TBS___"/>
                <spot name="qmap_spot_2" style="qmap_spot_style" textstyle="qmap_spot_text_style" prefix="" suffix="" lat="476" lng="487" heading="0" scene="scene_2___TBS___"/>
                <spot name="qmap_spot_3" style="qmap_spot_style" textstyle="qmap_spot_text_style" prefix="" suffix="" lat="671" lng="429" heading="0" scene="scene_2___TBS___"/>
            </map_group>
            <map_group name="qmap_group_2" url="%SWFPATH%/mapimg/map_1.jpg" map_min_zoom="0.5" map_max_zoom="1.2" zoom="1" current="false" text="二楼" btn_x="55">
                <spot name="qmap_spot_4" style="qmap_spot_style" textstyle="qmap_spot_text_style" prefix="" suffix="" lat="135" lng="742" heading="0" scene="scene_2___TBS___"/>
                <spot name="qmap_spot_5" style="qmap_spot_style" textstyle="qmap_spot_text_style" prefix="" suffix="" lat="153" lng="519" heading="0" scene="scene_2___TBS___"/>
                <spot name="qmap_spot_6" style="qmap_spot_style" textstyle="qmap_spot_text_style" prefix="" suffix="" lat="200" lng="423" heading="0" scene="scene_2___TBS___"/>
                <spot name="qmap_spot_7" style="qmap_spot_style" textstyle="qmap_spot_text_style" prefix="" suffix="" lat="150" lng="681" heading="0" scene="scene_2___TBS___"/>
            </map_group>
        </maplayer>
    
    <!-- 皮肤相关(包括外层容器、按钮) -->
        <style name="qmap_container_style" parent="stage" bgcolor="0x2b3c4e" bgalpha="0.5" align="rightbottom" edge="rightbottom" x="0" width="300" height="326" maskchildren="true" bgcapture="true" keep="true" />
        
        <style name="qmap_container_btn_circle" zorder="1" bgroundedge="50" keep="true" type="container" align="leftbottom" x="10" y="10" width="40" height="40" bgcolor="0x22798b" bgalpha="0.5" bgcapture="true" onover="qmap_container_btn_circle_over" onout="qmap_container_btn_circle_out" />
        <style name="qmap_container_btn_circle_text" type="text" keep="true" background="false" css="font-family:Arial; font-size:30px; color:#FFFFFF;" align="center" vcenter="center" />
        <style name="qmap_container_btn_floor" parent="qmap_container" keep="true" zorder="1" bgroundedge="0" type="container" align="lefttop" x="0" y="0" width="50" height="26" bgcolor="0x22798b" bgalpha="0.5" bgcapture="true" maskchildren="false" />
        <style name="qmap_container_btn_floor_text" type="text" keep="true" background="false" css="font-family:Arial; font-size:18px; color:#FFFFFF;" align="center" vcenter="center" />
    
        <style name="qmap_radar_style" align="center" edge="center" x="0" y="-10" scale="1.0" heading="0.0" headingoffset="0.0" fillcolor="0xffc900" fillalpha="0.5" linecolor="0xffc900" linewidth="0.1" linealpha="0.5" invert="false" editmode="false" keep="true" ondown="qmap_area_map_spot_down" onup="qmap_area_map_spot_up" />
    
        <style name="qmap_spot_active_style" url="%SWFPATH%/mapimg/radar-active.png" align="lefttop" edge="lefttop" scale="1.0" keep="true" onclick="qmap_area_map_spot_click" />
        <style name="qmap_spot_style" url="%SWFPATH%/mapimg/radar-out.png" align="lefttop" edge="lefttop" scale="1.0" keep="true" onclick="qmap_area_map_spot_click" />
    
        <!-- 核心代码,布局 -->
        <area mode="border" top="1" right="300" bottom="1" left="1" />
        <layer name="qmap_container" style="qmap_container_style" type="container" maskchildren="true" bgcapture="true" onover="qmap_container_over" onout="qmap_container_out" onloaded="qmap_container_loaded">
            <!-- 缩放按钮 -->
            <layer name="qmap_container_btn_in_outer" style="qmap_container_btn_circle">
                <layer name="qmap_container_btn_in" style="qmap_container_btn_circle_text" html="[span class='zutitls zutitls-jia']" ondown="qmap_area_map_btn_zoom(0.03)"/>
            </layer>
            <layer name="qmap_container_btn_out_outer" style="qmap_container_btn_circle" x="60">
                <layer name="qmap_container_btn_out" style="qmap_container_btn_circle_text" html="[span class='zutitls zutitls-jian']" ondown="qmap_area_map_btn_zoom(-0.03)"/>
            </layer>
    
            <!-- 分组按钮 -->
            <!-- <layer name="qmap_container_btn_floor1_outer" style="qmap_container_btn_floor">
                <layer name="qmap_container_btn_floor1" style="qmap_container_btn_floor_text" html="一楼" onclick="qmap_container_btn_floor_click(qmap_group_1)"/>
            </layer>
            <layer name="qmap_container_btn_floor2_outer" style="qmap_container_btn_floor" x="55">
                <layer name="qmap_container_btn_floor2" style="qmap_container_btn_floor_text" html="二楼" onclick="qmap_container_btn_floor_click(qmap_group_2)"/>
            </layer> -->
        </layer>
    
    <!-- 最外层容器事件 -->
        <action name="qmap_container_over">
            <!-- 标记缩放为真,当前分组背景已在加载分组背景时设置,记录场景滚轮缩放值,并且改变为false -->
    		set(qmap_iszoom, true); 
            set(qmap_current_group_map, get(qmap_current_group_map_image));
            copy(qmap_copy_control_mousefovchange,   control.mousefovchange);
            copy(qmap_copy_control_touchzoom,        control.touchzoom);
    		set(control.mousefovchange, 0); 
    		set(control.touchzoom,      false); 
        </action>
        <action name="qmap_container_out">
            <!-- 标记缩放为否,置空当前分组背景,恢复场景滚轮缩放 -->
            set(qmap_iszoom, false);
            set(qmap_current_group_map, null);
            set(control.mousefovchange, get(qmap_copy_control_mousefovchange));
            set(control.touchzoom,      get(qmap_copy_control_touchzoom));
        </action>
        <action name="qmap_container_loaded">
            <!-- 局部变量 -->
            copy(map_group_copy, maplayer[0].map_group);
            set(qmap_area_container, get(maplayer[0].name));
            set(qmap_area_url, "%SWFPATH%/mapimg/scrollarea.js");
            if(device.flash, set(qmap_area_url, "%SWFPATH%/mapimg/scrollarea.swf"););
            
            set(qmap_area_prefix, 'qmap_scrollarea_');
            set(qmap_area_map_prefix, 'qmap_scrollarea_map_');
            
            <!-- 添加滚动区域容器 -->
            addlayer(get(qmap_area_container));
            set(layer[get(qmap_area_container)].type,     container);
            set(layer[get(qmap_area_container)].align,    lefttop);
            set(layer[get(qmap_area_container)].edge,     lefttop);
            set(layer[get(qmap_area_container)].oy,       26);
            set(layer[get(qmap_area_container)].width,    get(width));
            set(layer[get(qmap_area_container)].height,   calc(height - 26));
            set(layer[get(qmap_area_container)].parent,   get(name));
            set(layer[get(qmap_area_container)].keep,     true);
    
            <!-- 读取qmaplayer数组,设置分组map,热点,及设置当前活动热点为中心 -->
            for(set(i,0), i LT map_group_copy.count, inc(i),
                copy(map_group_copy_i, map_group_copy[get(i)]);
                <!-- 添加滚动区域 -->
                txtadd(qmap_area, get(qmap_area_prefix), get(map_group_copy[get(i)].name));
                addlayer(get(qmap_area));
                set(layer[get(qmap_area)].url,      get(qmap_area_url));
                set(layer[get(qmap_area)].align,    center);
                set(layer[get(qmap_area)].edge,     center);
                set(layer[get(qmap_area)].width,    get(width));
                set(layer[get(qmap_area)].height,   get(height));
                set(layer[get(qmap_area)].mwheel,   false);
                set(layer[get(qmap_area)].parent,   get(qmap_area_container));
                set(layer[get(qmap_area)].keep,     true);
                set(layer[get(qmap_area)].visible,  get(map_group_copy_i.current));
    
                <!-- 添加map图片层 -->
                txtadd(qmap_area_map, get(qmap_area_map_prefix), get(map_group_copy_i.name));
                set(qmap_area_map_url, get(map_group_copy_i.url));
                addlayer(get(qmap_area_map));
                set(layer[get(qmap_area_map)].url,      get(qmap_area_map_url));
                set(layer[get(qmap_area_map)].scale,    1.0);
                set(layer[get(qmap_area_map)].x,        0);
                set(layer[get(qmap_area_map)].y,        0);
                set(layer[get(qmap_area_map)].align,    lefttop);
                set(layer[get(qmap_area_map)].edge,     lefttop);
                set(layer[get(qmap_area_map)].parent,   get(qmap_area));
                set(layer[get(qmap_area_map)].keep,     true);
                set(layer[get(qmap_area_map)].scalechildren,    true);
                set(layer[get(qmap_area_map)].onloaded,         qmap_area_map_loaded);
    
                <!-- 添加分组按钮 -->
                qmap_area_map_loaded_loadbutton(map_group_copy_i);
            );
        </action>
        <action name="qmap_area_map_loaded_loadspot">
            <!-- 局部变量 -->
            set(qmap_area_map_loaded_loadspot_m_parent_name, %1);
            set(qmap_area_map_loaded_loadspot_m_radar_url, "%SWFPATH%/mapimg/radar.js");
            if(device.flash, set(qmap_area_map_loaded_loadspot_m_radar_url, "%SWFPATH%/mapimg/radar.swf"));
    
            <!-- set(qmap_area_map_prefix, 'qmap_scrollarea_map_'); -->
            set(map_group_name, %1);
            txtreplace(map_group_name, get(qmap_area_map_prefix), '');
            copy(map_group_spots, maplayer[0].map_group[get(map_group_name)].spot);
            
            set(qmap_area_map_radar_prefix, 'qmap_scrollarea_map_radar_');
            txtadd(qmap_area_map_loaded_loadspot_m_radar_name, get(qmap_area_map_radar_prefix), get(map_group_name));
    
            <!-- 添加radar雷达插件 -->
            addplugin(get(qmap_area_map_loaded_loadspot_m_radar_name));
            set(plugin[get(qmap_area_map_loaded_loadspot_m_radar_name)].url,    get(qmap_area_map_loaded_loadspot_m_radar_url));
            plugin[get(qmap_area_map_loaded_loadspot_m_radar_name)].loadstyle(qmap_radar_style);
    
            for(set(i,0), i LT map_group_spots.count, inc(i),
                copy(spot_i, map_group_spots[get(i)]);
                set(qmap_area_map_spot_prefix, 'qmap_scrollarea_map_spot_');
                txtadd(qmap_area_map_loaded_loadspot_m_name, get(qmap_area_map_spot_prefix), get(spot_i.name));
    
                addlayer(get(qmap_area_map_loaded_loadspot_m_name));
                set(layer[get(qmap_area_map_loaded_loadspot_m_name)].x, get(spot_i.lat));
                set(layer[get(qmap_area_map_loaded_loadspot_m_name)].parent, get(qmap_area_map_loaded_loadspot_m_parent_name));
                set(layer[get(qmap_area_map_loaded_loadspot_m_name)].x, get(spot_i.lat));
                set(layer[get(qmap_area_map_loaded_loadspot_m_name)].y, get(spot_i.lng));
                set(layer[get(qmap_area_map_loaded_loadspot_m_name)].heading, get(spot_i.heading));
                layer[get(qmap_area_map_loaded_loadspot_m_name)].loadstyle(qmap_spot_style);
    
                if(i === 0,
                    layer[get(qmap_area_map_loaded_loadspot_m_name)].loadstyle(qmap_spot_active_style);
                    set(plugin[get(qmap_area_map_loaded_loadspot_m_radar_name)].parent, get(qmap_area_map_loaded_loadspot_m_name));
                    
                    <!-- 设置当前热点,使用scrollarea层是否显示做判断 -->
                    <!-- if(layer[get(layer[get(qmap_area_map_loaded_loadspot_m_parent_name)].parent)].visible, -->
                        set(layer[get(qmap_area_map_loaded_loadspot_m_parent_name)].current_spot,   get(qmap_area_map_loaded_loadspot_m_name));
                        set(layer[get(qmap_area_map_loaded_loadspot_m_parent_name)].current_radar,  get(qmap_area_map_loaded_loadspot_m_radar_name));
                        set(plugin[get(qmap_area_map_loaded_loadspot_m_radar_name)].heading, get(spot_i.heading));
                    <!-- ); -->
                );
            );
            
            <!-- 移除局部变量 -->
            delete(qmap_area_map_loaded_loadspot_m_parent_name, qmap_area_map_loaded_loadspot_m_name, qmap_area_map_loaded_loadspot_m_radar_name, qmap_area_map_loaded_loadspot_m_radar_url);
        </action>
        <action name="qmap_area_map_loaded_loadbutton">
            <!-- 根据分组添加按钮 -->
            set(qmap_container_btn_prefix, 'qmap_container_btn_');
            set(qmap_container_btn_suffix, '_outer');
            set(qmap_container_btn_group,  get(%1.name));
            txtadd(qmap_container_btn_name, get(qmap_container_btn_prefix), get(qmap_container_btn_group));
            txtadd(qmap_container_btn_outer_name, get(qmap_container_btn_name), get(qmap_container_btn_suffix));
            txtadd(qmap_container_btn_click, 'qmap_container_btn_floor_click(', get(qmap_container_btn_group), ');');
    
            <!-- 添加外层背景 -->
            addlayer(get(qmap_container_btn_outer_name));
            layer[get(qmap_container_btn_outer_name)].loadstyle(qmap_container_btn_floor);
            set(layer[get(qmap_container_btn_outer_name)].x, get(%1.btn_x));
            if(%1.current, 
                set(layer[get(qmap_container_btn_outer_name)].bgalpha, 1.0);
                set(layer[get(layer[get(qmap_container_btn_outer_name)].parent)].current_btn, get(qmap_container_btn_outer_name));
            );
    
            <!-- 添加内层文字 -->
            addlayer(get(qmap_container_btn_name));
            layer[get(qmap_container_btn_name)].loadstyle(qmap_container_btn_floor_text);
            set(layer[get(qmap_container_btn_name)].parent, get(qmap_container_btn_outer_name));
            set(layer[get(qmap_container_btn_name)].html, get(%1.text));
            set(layer[get(qmap_container_btn_name)].onclick, get(qmap_container_btn_click));
        </action>
        <action name="qmap_area_map_spot_down">
            <!-- 设置scrollarea层不可拖动,防止拖拽雷达插件时背景图片跟着被拖动 -->
            copy(qmap_area_map_spot_down_m_spot, layer[get(layer[get(name)].parent)]);
            copy(qmap_area_map_spot_down_m_map,  layer[get(qmap_area_map_spot_down_m_spot.parent)]);
            copy(qmap_area_map_spot_down_m_area, layer[get(qmap_area_map_spot_down_m_map.parent)]);
            set(qmap_area_map_spot_down_m_area.draggable, false);
        </action>
        <action name="qmap_area_map_spot_up">
            <!-- 设置scrollarea层不可拖动,防止拖拽雷达插件时背景图片跟着被拖动 -->
            copy(qmap_area_map_spot_down_m_spot, layer[get(layer[get(name)].parent)]);
            copy(qmap_area_map_spot_down_m_map,  layer[get(qmap_area_map_spot_down_m_spot.parent)]);
            copy(qmap_area_map_spot_down_m_area, layer[get(qmap_area_map_spot_down_m_map.parent)]);
            set(qmap_area_map_spot_down_m_area.draggable, true);
        </action>
        <action name="qmap_area_map_spot_click">
            <!-- 点击热点切换场景,需判断是否为当前热点,避免重复渲染 -->
            if(name !== layer[get(layer[get(name)].parent)].current_spot,       
                layer[get(layer[get(layer[get(name)].parent)].current_spot)].loadstyle(qmap_spot_style);
                layer[get(name)].loadstyle(qmap_spot_active_style);
                set(layer[get(layer[get(name)].parent)].current_spot, get(name));
                
                set(plugin[get(layer[get(layer[get(name)].parent)].current_radar)].parent,  get(name));
                set(plugin[get(layer[get(layer[get(name)].parent)].current_radar)].heading, get(heading));
                loadscene(scene_2___TBS___);
            );
        </action>
    
    <!-- 分组背景图片事件 -->
        <action name="qmap_area_map_loaded">
            <!-- 局部变量 -->
            copy(qmap_area_map_m_area,          layer[get(layer[get(name)].parent)]);
            copy(qmap_area_map_m_conatainer,    layer[get(qmap_area_map_m_area.parent)]);
    
            set(qmap_area_map_m_area.width, get(width));
            set(qmap_area_map_m_area.height, get(height));
    
            <!-- 求取设置最小缩放级别,确保背景图片至少有一个维度(高or宽)等于容器相同维度(高or宽) -->
            div(qmap_area_map_m_ratio_w, get(qmap_area_map_m_conatainer.width),     get(qmap_area_map_m_area.width));
            div(qmap_area_map_m_ratio_h, get(qmap_area_map_m_conatainer.height),    get(qmap_area_map_m_area.height));
            def(qmap_area_map_loaded_m_max_zoom, number, 1);
            set(layer[get(name)].map_max_zoom, get(qmap_area_map_loaded_m_max_zoom));
            set(layer[get(name)].map_min_zoom, get(qmap_area_map_m_ratio_w));
            if(qmap_area_map_m_ratio_w GE qmap_area_map_m_ratio_h, set(layer[get(name)].map_min_zoom, get(qmap_area_map_m_ratio_h)) );
    
            <!-- 记录当前显示分组name -->
            if(layer[get(layer[get(name)].parent)].visible, set(qmap_current_group_map_image, get(name)));
    
            <!-- 添加当前背景热点 -->
            qmap_area_map_loaded_loadspot(get(name));
        </action>
    
    <!-- 背景缩放事件 -->
        <!-- 此事件有限制:不能使用在area区域外层 -->
        <events name="qmap_area_map_zoom_events" keep="true" onmousewheel="qmap_area_map_mousewheel();" />
        <action name="qmap_area_map_mousewheel">
            <!-- 针对鼠标滚轮缩放的事件,后期可扩展加上触屏缩放的处理 -->
            if(qmap_iszoom, 
                <!-- 局部变量 -->
                copy(qmap_area_map_mousewheel_m_self, layer[get(qmap_current_group_map)]);
                copy(qmap_area_map_mousewheel_m_area, layer[get(qmap_area_map_mousewheel_m_self.parent)]);
    
                mul(qmap_area_map_mousewheel_m_speed, get(wheeldelta), 0.03); 
                mul(qmap_area_map_mousewheel_m_speed, qmap_area_map_mousewheel_m_self.scale); 
                add(qmap_area_map_mousewheel_m_self.scale, qmap_area_map_mousewheel_m_speed); 
                add(qmap_area_map_mousewheel_m_area.scale, qmap_area_map_mousewheel_m_speed);
                if(qmap_area_map_mousewheel_m_self.scale GE qmap_area_map_mousewheel_m_self.map_max_zoom,
                    set(qmap_area_map_mousewheel_m_self.scale, get(qmap_area_map_mousewheel_m_self.map_max_zoom));
                    set(qmap_area_map_mousewheel_m_area.scale, get(qmap_area_map_mousewheel_m_self.map_max_zoom));
                );
                if(qmap_area_map_mousewheel_m_self.scale LE qmap_area_map_mousewheel_m_self.map_min_zoom,
                    set(qmap_area_map_mousewheel_m_self.scale, get(qmap_area_map_mousewheel_m_self.map_min_zoom));
                    set(qmap_area_map_mousewheel_m_area.scale, get(qmap_area_map_mousewheel_m_self.map_min_zoom));
                );
            );
        </action>
        <action name="qmap_area_map_btn_zoom">
            <!-- 这里检测当前分组map是否为null,并赋值 -->
            set(qmap_current_group_map, get(qmap_current_group_map_image));
            asyncloop(pressed, qmap_area_map_auto_zoom(%1));
        </action>
        <action name="qmap_area_map_auto_zoom">
            <!-- 局部变量 -->
            copy(qmap_area_map_auto_zoom_m_self, layer[get(qmap_current_group_map)]);
            copy(qmap_area_map_auto_zoom_m_area, layer[get(qmap_area_map_auto_zoom_m_self.parent)]);
            set(qmap_area_map_auto_zoom_m_speed, %1);
            mul(qmap_area_map_auto_zoom_m_speed, qmap_area_map_auto_zoom_m_self.scale);
            
            add(qmap_area_map_auto_zoom_m_self.scale, get(qmap_area_map_auto_zoom_m_speed)); 
            add(qmap_area_map_auto_zoom_m_area.scale, get(qmap_area_map_auto_zoom_m_speed));
    
            if(qmap_area_map_auto_zoom_m_self.scale GE qmap_area_map_auto_zoom_m_self.map_max_zoom,
                set(qmap_area_map_auto_zoom_m_self.scale, get(qmap_area_map_auto_zoom_m_self.map_max_zoom));
                set(qmap_area_map_auto_zoom_m_area.scale, get(qmap_area_map_auto_zoom_m_self.map_max_zoom));
            );
            if(qmap_area_map_auto_zoom_m_self.scale LE qmap_area_map_auto_zoom_m_self.map_min_zoom,
                set(qmap_area_map_auto_zoom_m_self.scale, get(qmap_area_map_auto_zoom_m_self.map_min_zoom));
                set(qmap_area_map_auto_zoom_m_area.scale, get(qmap_area_map_auto_zoom_m_self.map_min_zoom));
            );
        </action>
    
    <!-- 缩放按钮特效事件 -->
        <action name="qmap_container_btn_circle_over">
            set(bgshadow,'5 0 5 0x000000 0.5');
        </action>
        <action name="qmap_container_btn_circle_out">
            set(bgshadow,'10 10 10 0x000000 0');
        </action>
    <!-- 分组按钮事件 -->
        <action name="qmap_container_btn_floor_click">
            txtadd(qmap_scrollarea_arg, get(qmap_area_prefix), %1);
            set(qmap_scrollarea_current, get(layer[get(qmap_current_group_map_image)].parent));
            txtadd(qmap_scrollarea_arg_map, get(qmap_area_map_prefix), %1);
            txtadd(qmap_scrollarea_arg_btn_outer_name, get(qmap_container_btn_prefix), %1, get(qmap_container_btn_suffix));
    
            if(qmap_scrollarea_arg !== qmap_scrollarea_current,
                set(layer[get(qmap_scrollarea_current)].visible,    false);
                set(layer[get(qmap_scrollarea_arg)].visible,        true);
                set(qmap_current_group_map_image, get(qmap_scrollarea_arg_map));
    
                <!-- 按钮切换效果 -->
                set(layer[get(qmap_scrollarea_arg_btn_outer_name)].bgalpha, 1);
                set(layer[get(layer[get(layer[get(qmap_scrollarea_arg_btn_outer_name)].parent)].current_btn)].bgalpha, 0.5);
                set(layer[get(layer[get(qmap_scrollarea_arg_btn_outer_name)].parent)].current_btn, get(qmap_scrollarea_arg_btn_outer_name));
            );
        </action>
    
    <!-- 放大按钮事件 -->
        <action name="ssds">
            set(layer[qmap_container].width,  '80%');
            set(layer[qmap_container].height, '80%');
            set(layer[qmap_container].align,  'center');
            set(layer[qmap_container].edge,   'center');
    
        </action>
    </krpano>
    
  • 相关阅读:
    说明因 Active Directory 冲突导致的 NTDS 复制警告 ID 1083 和 1061 以及 SAM 错误 ID 12294
    KB817701:可用于解决帐户锁定问题的 Service Pack 和修复程序
    log check
    AD account 锁定问题
    VS.2005 中比较有用的快捷键
    用户帐户意外锁定, 以及 Windows Server 2003 中记录事件 ID 12294
    xp 重新安装MDAC
    [学习收藏]业界三种架构优缺点比较
    [收藏学习]Linux内核虚拟机 学习KVM架构及其优点
    两个命令:hdparm和iozone参数解释
  • 原文地址:https://www.cnblogs.com/CodeDeath/p/8309098.html
Copyright © 2011-2022 走看看