GVKun编程网logo

做SEO需注意的细节(做seo需注意的细节有哪些)

33

在这里,我们将给大家分享关于做SEO需注意的细节的知识,让您更了解做seo需注意的细节有哪些的本质,同时也会涉及到如何更有效地C++中需要注意的细节你知道吗、html5-注意的细节、lua一些需要注意

在这里,我们将给大家分享关于做SEO需注意的细节的知识,让您更了解做seo需注意的细节有哪些的本质,同时也会涉及到如何更有效地C++中需要注意的细节你知道吗、html5-注意的细节、lua 一些需要注意的细节、MUI使用中注意的细节的内容。

本文目录一览:

做SEO需注意的细节(做seo需注意的细节有哪些)

做SEO需注意的细节(做seo需注意的细节有哪些)

 

  现在越来越多的朋友加入了网站优化行业,这个行业的门槛比较低,什么人都可以做,可以说是种易学难精的技术,很多朋友在优化一个网站时就知道了。我在优化蝶动做网站这个站时就发现了一些细节,不过这些细节可以说直接影响网站的优化排名,今天我来跟

  现在越来越多的朋友加入了网站优化行业,这个行业的门槛比较低,什么人都可以做,可以说是种易学难精的技术,很多朋友在优化一个网站时就知道了。我在优化蝶动做网站这个站时就发现了一些细节,不过这些细节可以说直接影响网站的优化排名,今天我来跟大家说说:
  *个:meta的keywords和description标签
  这个标签很多人需要都知道,是用来给搜索引擎看的关键词和描述。我*个就说这个,是想说现在的搜索引擎对这两个标签已经不那么重视了,很多人用这两个标签堆砌关键词,结果就是搜索引擎对此降权。所以没有必要去太关注这两个标签。
  第二个:域名和URL
  URL要静态化,域名和网站内容有关联,对于seo来说是*好不过的,当然如果没有那么好的域名,就可以从URL来下功夫了。URL一般会包含分类名称或者新闻名称等,这就是要修改的,可以把分类改一个和内容相关的名称,比如wordpress可以在后台修改固定链接形式,可以自己加上关键词,不过注意,URL还是短一点比较好。还有就是“返回顶部”等链接,链接格式是“/#top”的,对搜索引擎来说是不友好的,去掉比较好。
  第三个:title的关键词
  这个需要也都知道,但是我想说的是,关键词的链接方式。比如“imeego_meego”和“imeego-imeego”是不一样的,前者的下划线会被搜索引擎忽略,导致两个关键词连在一起,这样对搜索引擎不好,需要使用|-【】等不会被忽略的链接。
  第四个:h1标签
  标题使用h1标签受到搜索引擎的青睐,因为这会告诉搜索引擎这是标题。有所以这个一个说法:一个好的标题是原创的一半(我自己说的)。搜索引擎*先找到的是标题,使用h1标签会让它省事不少,就是这个意思。
  第五个:图片的title和alt属性
  这两个标签一般情况下用户是看不到的,但是搜索引擎能看到,所以对于seo是有帮助的。title属性是设置鼠标经过图片的时候显示的文字,alt则是当图片不能正常显示的时候替代红叉的文字,这两个标签既能增加用户体验,又能增加seo效果,何乐而不为呢?
  第七个:flash导航
  有的网站为了美观而使用flash的导航,这样的确在美化上增加了效果,但是对于搜索引擎,这是不友好的,搜索引擎很难读取flash的信息。那么有什么办法能够在用这些导航的情况下,对搜索引擎更友好呢?可以在其他的地方增加一个文字导航,比如底部,这是给搜索引擎看的,可以不那么显眼。
  第八个:Robost.txt
  Robost.txt可以告诉搜索引擎哪些页面可以读取,哪些页面不希望读取,正确书写Robost.txt可以使seo更加轻松。比如网站有死链或者垃圾内容,用Robost.txt屏蔽掉会收录得更好,也不会被降权。
  上面几点是我在优化做网站这个网站时收集到的一些细节,当然做网站的优化工作还有很多很多,我只是列表出来一部分而已,希望这些能够对大家有所帮助!编辑:蝶动网站优化

本文章网址:http://www.ppssdd.com/info/19167.html。转载请保留出处,谢谢合作!

C++中需要注意的细节你知道吗

C++中需要注意的细节你知道吗

namespace的使用

#include <iostream>
using namespace std;
//定义命名空间
namespace NameSpaceA
{
    int a = 0;
}
namespace NameSpaceB
{
    int a=1;
    namespace NameSpaceC
    {
        struct Teacher
        {
            /* data */
            char name[10];
            int age;
        };
    }
}
int main()
{
    //using namespace NameSpaceA;
    using NameSpaceB::NameSpaceC::Teacher;
    using namespace NameSpaceB;
    printf("a = %d \n",a);
    printf("a = %d \n",NameSpaceA::a);
    Teacher t1;
    t1.age = 20;
    printf("age: %d \n",t1.age);
    return 0;
}

const使用:

//C++编译器对const常量的处理
//当看见常量声明时,会在符号表中放入常量-->当要使用时,直接取符号表中的值替换
//C中的const变量是个只读变量,但自己的存储空间
//C++中-->const为全局或&时才会分配空间
//#define和const相同之处:C++中的const修饰,是一个真正的常量,而C中只是个只读变量。const修饰的常量在编译期间就确定了。
//#define与const不同之处:#define-->由预处理器处理,单纯的文本替换
//                       const---->编译器处理,提供类型检查和作用域检查
#include <iostream>
using namespace std;
void fun1()
{
    #define a 10
    const int b = 20;
}
void fun2()
{
    printf("%d\n",a);
    //cout<<b<<endl;
}
int main()
{
    //int &a = 20;
    const int &b = 30;   //直接取符号表中的值代替,当使用&或者extern时会给常量分配内存空间
    fun1();
    fun2();
    getchar();
    return 0;
}

引用

//引用的本质:
//          1 引用在C++内部实现是一个常指针   Type &name --> Type * const name
//          2 C++编译器在编译过程中使用常指针作为引用的内部实现.因此所占用的空间与指针一样大 4
//          3 C++为引用的使用做了细节隐藏
/*
    函数返回值是引用:
           1  难点注意:要观察返回的变量是在哪里分配内存空间的--->如果是临时变量,即在栈上分配内存,函数返回时会被析构(释放)
                            --> 不能作为左值使用,因为空间被释放了。没地方存了
                            --> 不能成为其它引用的初始值,空间被释放了
           2  c++链式编程编程、操作符重载
*/
/*
    指针的引用-->只不过是为存储指针的这块内存取了个别名而已
*/
#include <iostream>
using namespace std;
//证明引用有自己的内存空间
struct  Teacher
{
    /* data */
    int &a;
    int &b;
};
int main2()
{
    printf("sizeof(Teacher):%d \n",sizeof(Teacher));  //8-->int const *a and int const *b
    return 0;
}
int main1()
{
    int a   =  10;
    int &b  = a;
    printf("&a:%d\n",&a);
    printf("&b:%d\n",&b);  
    //对同一内存空间可以取好几个名字吗?    -->   不行
    //实际上:int const *b = &a     &b:编译器会帮我们做 *(&b) 
    return 0;
}
//引用做函数返回值
int f1()
{
    int a;
    a = 10;
    return a;
}
int &f2()
{
    int a;
    a = 20;
    return a;
}
int *f3()
{
    int a;
    a = 30;
    return &a;
}
//---> 害,其实就一句话,看内存有没有被释放而已
//static + &引用
int j()             //-->返回的只是一个数值而已
{
    static int a = 10;
    a++;
    printf("a:%d \n",a);
    return a;
}
int &j2()           //返回 *(&a)
{
    static int a = 20;
    a++;
    printf("a:%d \n",a);
    return a;
}
int *j3()           //->返回的是一个地址
{
    static int a = 30;
    a++;
    printf("a:%d \n",a);
    return &a;
}
int main33()
{
    //j()-->返回的是一个数值,不能当左值  11 = 100(err)
    j2() = 100;
    j2();
    //手工打造引用条件
    *(j3()) = 100;
    j3();
    getchar();
    return 0;
}
//非基础类型:可能设计到深拷贝和浅拷贝的问题-->其实也就是有没有内存空间的问题
struct Student
{
    int  age;
};
Student & Op(Student &s)
{
    /* data */
    s.age = 30;
}
int main44()
{
    Student s1;
    s1.age = 20;
    Op(s1);
    cout<<s1.age;
    return 0;
}
//常引用-->const难点
int main55()
{
    int a = 10;
    const int &b = a;   //const char const* b = xxxx ---> 但a可以改变
   // b = 11;   
    a = 20;
    int *p = (int *)&b;
    //
    const int aa = 20;
    const int &bb = aa;
    //int &b = aa;
}
//const:常量 pk 变量 -->const int *const  p
int main()
{
    const int b =10;
    printf("&b:%d \n",&b);
    const int &bb = 19;
    printf("&bb:%d \n",&bb);
    getchar();
    return 0;
}

三目运算

//在C++中,三目运算返回变量本身,可以做左值
#include <iostream>
using namespace std;
int main()
{
    int a = 20;
    int b = 30;
    a = (a<b?a:b) = 30;
    cout<<a<<endl;
    getchar();
    return 0;
}

函数相关

#include <iostream>
using namespace std;
/*
    第一部分:inline函数
        1.内联函数声明时inline关键字必须和函数定义结合在一起,否则编译器会直接忽略请求
        2.内联函数是一种特殊的函数,具有普通函数的特征(参数检查,返回类型等)
            -->相对于普通的函数而言,内联函数省去了压栈、跳转、返回的开销
        3.内联函数由编译器处理,然后将编译后的函数体直接插入调用的地方
          宏定义-->预处理器处理,进行简单的文本替换,没有任何编译过程
*/
#define  MYFUNC(a,b)    ((a)<(b)?(a):(b))   //预处理阶段,简单的文本替换
inline int func(int a , int b)      //经历编译过程
{
    return a<b?a:b;
}
int main01()
{
    int a = 1;
    int b = 3;
    int c =func(++a,b);
    cout<<c;    //2
    int d = MYFUNC(++a,b);
    cout<<d<<"  ";  //3
    getchar();
    return 0;
}
/*
    第二部分:函数的占位参数:
            占位参数只有参数类型声明,而没有参数名声明
            一般情况下,函数内部无法使用占位参数
*/
int f(int a , int b , int)
{
    return a+b;
}
int main02()
{
    // int c = f(1,2);
    //cout<<c<<"  ";
    int d = f(1,2,3);
    cout<<d;
    getchar();
    return 0;
}
//默认参数和占位参数一起使用-->可以方便程序的扩展
int f2(int a,int b,int = 0)
{
    return a+b;
}
int main022()
{
    f2(1,2);
    f2(1,2,3);
    getchar();
    return 0;
}
/*
    第三部分:
        函数重载-->参数个数不同 、 参数类型不同 、 参数顺序不同
        编译器调用重载函数的准则:
                将所有同名函数作为候选者
                尝试寻找可行的候选者
                精确匹配实参
        匹配失败:
                找到的可行函数不唯一,出现二义性,编译失败
                没有找到可行的函数
        注意事项:
                重载函数在本质上是不同的函数,是相互独立的(静态链编)
                函数重载是发生在同一个类里面的
*/
//函数重载遇上函数指针
int g(int x)
{
    return x;
}
int g(int a ,int b)
{
    return a+b;
}
typedef int(*PFUNC)(int);
int main()
{
    int c = 0;
    PFUNC p = g;
    c = p(1);
    cout<<c<<endl;
    getchar();
    return 0;
}
//register-->暗示编译程序相应的变量将被频繁的使用,如果可能的话,应该将其放到CPU的寄存器中,加快访问速度
//减少了去内存中寻址、取值
// #ifdef NOSTRUTASSIGN
//     memcpy (d , s , l)
//     {
//         register char *d;
//         register char *s;
//         register int  l;
//         while (l--)
//         {
//             *d++ = *s++;
//         }
//     }
// #endif

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!

您可能感兴趣的文章:
  • C++中putchar与getchar函数的细节及运用
  • C++实现二分法的一些细节(常用场景)
  • C++ main函数的几点细节
  • C++中const的实现细节介绍(C,C#同理)
  • C++函数返回值为对象时,构造析构函数的执行细节

html5-注意的细节

html5-注意的细节

特殊的html符号。

开发人员必须用特殊的字符引用来创建重音字符(在很多西欧语言中很常见)和许多日常符号,如 &eacute;(表示 é)、 &copy;( 表 示 ©) 等。 完 整 列 表 见

www. elizabethcastro.com/html/extras/entities.html

 

UTF-8 对页面进行编码

<meta charset="utf-8" />

文件名和文件夹名

文件名全部使用小写字母,用短横线分隔单词,用 .html 作为扩展名。

文件夹的名称也应全部用小写字母

文件夹的名称也应全部用小写字母。关键是保持一致。如果使用小写字母,访问者和创建者就不必在大写字母和小写字母之间转换浪费时间了

 

不过,文本内容、图像、音频、视频、样式表及其他外部文件可能受版权保护。通常的做法是借鉴其他人的页面为自己的 HTML 寻找灵感,再创建自己的内容。


 

 


 

 

lua 一些需要注意的细节

lua 一些需要注意的细节

总结

以上是小编为你收集整理的lua 一些需要注意的细节全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

MUI使用中注意的细节

MUI使用中注意的细节

DOM结构

关于mui页面的dom,你需要知道如下规则。

固定栏靠前

所谓的固定栏,也就是带有.mui-bar属性的节点,都是基于fixed定位的元素;常见组件包括:顶部导航栏(.mui-bar-nav)、底部工具条(.mui-bar-footer)、底部选项卡(.mui-bar-tab);这些元素使用时需遵循一个规则:放在.mui-content元素之前,即使是底部工具条和底部选项卡,也要放在.mui-content之前,否则固定栏会遮住部分主内容;

一切内容都要包裹在mui-content中

除了固定栏之外,其它内容都要包裹在.mui-content中,否则就有可能被固定栏遮罩,原因:固定栏基于Fixed定位,不受流式布局限制,普通内容依然会从top:0的位置开始布局,这样就会被固定栏遮罩,mui为了解决这个问题,定义了如下css代码:

 .mui-bar-nav ~ .mui-content {
        padding-top: 44px;
    }
    .mui-bar-footer ~ .mui-content {
        padding-bottom: 44px;
    }
    .mui-bar-tab ~ .mui-content {
        padding-bottom: 50px;
    }

你当然可以通过自定义CSS的方式实现如上类似效果,但为了使用简便,建议将除固定栏之外的所有内容,全部放在.mui-content中。

始终为button按钮添加type属性

若button按钮没有type属性,浏览器默认按照type=submit逻辑处理,这样若将没有type的button放在form表单中,点击按钮就会执行form表单提交,页面就会刷新,用户体验极差。

窗口管理

页面初始化:必须执行mui.init方法

mui在页面初始化时,初始化了很多参数配置,比如:按键监听、手势监听等,因此mui页面都必须调用一次mui.init()方法;

页面跳转:抛弃href跳转

当浏览器加载一个新页面时,若页面DOM尚未渲染完毕,页面会先显示空白,然后等DOM渲染完毕后,再显示具体内容,这是WEB浏览器技术无法逾越的体验障碍;为解决这个问题,建议使用mui.openWindow方法打开一个新的webview,mui会自动监听新页面的loaded事件,若加载完毕,再自动显示新页面;
扩展阅读:


  • hello mui中的无等待窗体切换是如何实现的
  • 提示HTML5的性能体验系列之一 避免切页白屏

页面关闭:勿重复监听backbutton

mui框架自动封装了页面关闭逻辑,若希望自定义返回逻辑(例如编辑页面的返回,需用户确认放弃草稿后再执行返回逻辑),则需要重写mui.back方法,切勿简单通过addEventListener添加backbutton监听,因为addEventListener只会增加新的执行程序,mui默认封装的监听执行逻辑依然会继续执行,因此若仅addEventListener添加用户确认框,则用户即使选择了取消,也会继续关闭窗口。

手势操作

点击:忘记click

快速响应是mobile App实现的重中之重,研究表明,当延迟超过100毫秒,用户就能感受到界面的卡顿,然而手机浏览器的click点击存在300毫秒延迟(至于为何会延迟,及300毫秒的来龙去脉,请自行谷百),mui为了解决这个问题,封装了tap事件,因此在任何点击的时候,请忘记click及onclick操作,统统使用如下代码:

element.addEventListener('tap',function(){
        //点击响应逻辑
    });

常见错误

Uncaught ReferenceError: plus is not defined

在app开发中,若要使用HTML5+扩展api,必须等plusready事件发生后才能正常使用,否则可能会报“plus is not defined”的错误;
mui为简化开发,将plusReady事件封装成了mui.plusReady()方法,凡涉及到HTML5+的api,建议都写在mui.plusReady方法中;

链接: http://ask.dcloud.net.cn/article/122

关于做SEO需注意的细节做seo需注意的细节有哪些的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于C++中需要注意的细节你知道吗、html5-注意的细节、lua 一些需要注意的细节、MUI使用中注意的细节等相关内容,可以在本站寻找。

本文标签: