• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

Recommended Posts

最近在写一些基础演示,偶尔用到了Yii:pjax .结果用下来,一顿不爽。

依照网上度娘找了个例子https://www.yiichina.com/tutorial/814,结果嫩是没有毛的效果。再查看网页源代码,发现连射流研究…库都没加载。

这里就不讨论为啥前后端不分离了,我就一小小的后端sde,为自己的软件服务写个演示而以。

顺着源代码查了一下。

/**

*注册所需的JavaScript .

*/

公共函数registerClientScript()

{

$ id=$ this-options[' id '];

$ this-client options[' push ']=$ this-enablePushState;

$ this-client options[' replace ']=$ this-enableReplaceState;

$ this-client options[' time out ']=$ this-time out;

$ this-client选项[' scroll to ']=$ this-scroll to;

如果(!isset($ this-client options[' container ']){

$ this-client options[' container ']=' # $ id ';

}

$ options=JSON :3360 html encode($ this-client options);

$ js=

if ($this-linkSelector!==假){

$ link selector=JSON :3360 html encode($ this-link selector!==null?$ this-link选择器:"# .$id .a’);

$js .='jQuery(文档)。'pjax($linkSelector,$ options);

}

if ($this-formSelector!==假){

$ form selector=JSON :3360 html encode($ this-form selector!==null?$ this-表单选择器:"# .$id .form[data-pjax]');

$ submit事件=JSON :3360 html编码($ this-submit事件);

$js .=' \查询(文档)。off(submit event,formSelector).on($submitEvent,$formSelector,function(event){ jquery。pjax。提交(事件,$选项);});';

}

$ view=$ this-getView();

/*应该是这砣代码出了问题,没注册成功**/

pjaasset :注册($查看);

如果($js!=='') {

$ view-register js($ js);

}

}

public $ source path=' @ bower/yii 2-pjax ';

public $js=[

' jquery.pjax.js ',

];

``

考虑到我是个懒人,算了一下,屁大点事,也就几十行代码,我犯不着去里三层,外三层的去折腾人家的代码。

万一改来改去,他其它依赖他这砣代码的东西一并干崩了,更是蛋疼。

直接自己写一个自己用就完事了。

命名空间公共\帮助程序;

MyPjaxHelper类

{

私有静态$ pjax _ id=null

公共静态函数begin($ config=[' id '=' pjax-content '])

{

$ pjax _ id=$ config[' id '];

self : $ pjax _ id=$ pjax _ id;

echo ' div id=' $ pjax _ id

$ headers=\ yii : $ app-get request()-get headers();

if($ headers-get(' X-PJAX ')$ headers-get(' X-PJAX-Container ')==' # PJAX-Container '):

ob _ clean();

ob _ implicit _ flush(false);

结束条件

}

公共静态函数结束()

{

$ pjax _ id=self : $ pjax _ id;

$ headers=\ yii : $ app-get request()-get headers();

$ conent=ob _ get _ contents();

ob _ end _ clean();

回声$内容

if($ headers-get(' X-PJAX ')$ headers-get(' X-PJAX-Container ')==' # $ PJAX _ id '){

exit();

}

"回显"脚本$(文档)。pjax('a ',' # $ pjax _ id ')/script ';

}

}

使用方法:

` ` php

?服务器端编程语言(专业超文本预处理器的缩写)

使用\ common \ helpers \ MyPjaxHelper

ob _ start();

脚本src='?=obs_base()?ace/js/jquery。pjax。量滴js '/脚本

视角中局部刷新前面的内容.

?PHP mypjaxhelper : begin([' id '=' t1 ']);

a href='/edu/sign/demo?t=徐星?服务器端编程语言(Professional Hypertext Preprocessor的缩写)回显时间();/a

?PHP pr2($ _ REQUEST);

回声微时(真);

?服务器端编程语言(专业超文本预处理器的缩写)

mypjaxhelper : end();

查看代码局部刷新后面的内容.

写玩后,找了几个地方,自己套着用了下,哎亲生的就是好用。

Link to comment
Share on other sites