Sitecore 8 备忘录I - Pipeline列表

写在前面:

转载请注明出处

  • 什么是Pipeline?
    Pipeline是由多个processor的一个组, Sitecore按一定顺序执行完所有Pipeline, 包括所有的processor来完成一个页面周期
  • 什么是processor?
    process就是.NET类里面的method, 是某个assemly里的function.
  • 为什么要写pipeline备忘录
    在之前的开发中, 有时候需要对一个pipeline里面的processor添加一些功能, 或在processor之前做一些准备在进行processor时, 总是要通过搜索互联网来查一下到底要对哪个pipeline里的哪个processor进行修改最好, 而且网上也没有特别好的以列举方式的文章, 所以为了方便查阅pipelin和proccessors处在哪个阶段, 以便最快速度完成进度.

Sitecore HTTP request pipelines备忘录:

preprocessRequest:
SuppressFormValidation
NormalizeRawUrl
IIS404Hanlder
WebDAVCustomHandler
FIlterUrlExtensions
StripLanguage
RewriteUrl
OverrideDialogs
OverrideXmlControl
ResolveCLientPath
httpRequestBegin:
CheckIgnoreFlag
EnsureServerUrl
StartMeasurements
StartDiagnostics
IgnoreList
IgnoreBundleEntries
OnRequestBundleRegistrarProcessor
DisplayFatalErrors
SiteResolver
SetRuntimeSettings
CheckMode
UserResolver
ResolveUserFromRequest
EnableExperienceModePipeline
DatabaseResolver
BeginDiagnostics
DeviceResolver
PresetResolverPipeline
DevicePipeline
LanguageResolver
ResolveLanguage
CustomHandlers
FilterUrlExtensions
HandleActionRequest
QueryStringResolver
DynamicLinkResolver
AliasResolver
DefaultResolver
FileResolver
PreviewResolverPipeline
ItemResolver
HandleSimulationRequest
TransferRoutedRequest
LaunchRequest
ContextItemPipeline
ResolveContentLanguage
DeviceSimulatorResolver
LayoutResolver
TransferMvcLayout
TransferControllerRequest
CheckDevice
PageEditorHandleNoLayout
ExecuteRequest
renderField:
SetParameters
GetFieldValue
GetTextFiledValue
ExpandLinks
GetImageFieldValue
GetLinkFieldValue
GetInternalLinkFieldValue
GetMemoFieldValue
GetDateFieldValue
GetDocxFieldValue
GetIntegerFieldValue
GetNumberFieldValue
AddBeforeAndAfterValues
HighlightContentChange
ProtectedImageLinkRenderer
RenderWebEditing

虽然在融合之后的Sitecore.config中 (通过/showconfig.aspx查看), 在"renderField" pipeline之后是"httpRequestProcessed" pipelie, 但在实际的周期中其实是"renderLayout" pipeline。在"renderLayout"中, 有一些processeor是专门用来调用其他pipeline的, 譬如"startAnalytics"; 这些被调用的pipeline中也包含一些processor, 并在这些processor中再调用其他pipeline. 具体如下 (由于列表方式比较复杂, 所以改为xml):

renderLayout:
<renderLayout>
	<CheckIgnoreFlag></CheckIgnoreFlag>
	<PageHandlers></PageHandlers>
	<SecurityCheck></SecurityCheck>
	<StartAnalytics>
		<CheckProconditions></CheckProconditions>
		<CreateTracker>
			<GetTracker></GetTracker >
		</CreateTracker>
		<StartTracking>
			<JourneyPepeline></JourneyPepeline>
			<RaiseStartTracking></RaiseStartTracking>
			<InitializeTracker>
				<IsMediaRequest></IsMediaRequest>
				<CreateVisit>
					<InitializeWithRequestData></InitializeWithRequestData>
					<XForwardedFor></XForwardedFor>
					<UpdateGeoIpData></UpdateGeoIpData>
					<ParseReferrer>
						<ParseGenericSearchEngine></ParseGenericSearchEngine>
					</ParseReferrer>
					<ParseSelfReferrer></ParseSelfReferrer>
					<SetTrafficType></SetTrafficType>
					<InitializeProfile></InitializeProfile>
					<SetChannel></SetChannel>
				</CreateVisit>
				<CreatePage></CreatePage>
				<EnsureNextPageData></EnsureNextPageData>
				<Robots></Robots>
				<RunRules></RunRules>
			</InitializeTracker>
			<TrackerInitialized></TrackerInitialized>
			<UpdateGeoIpData></UpdateGeoIpData>
			<GeoIpPipeline></GeoIpPipeline>
			<ProcessQueryStringCampaign></ProcessQueryStringCampaign>
			<ProcessQueryStringPageEvent></ProcessQueryStringPageEvent>
			<ProcessQueryStringTriggers></ProcessQueryStringTriggers>
		</StartTracking>
	</StartAnalytics>
	<EvaluateTestExposure></EvaluateTestExposure>
	<PageLevelTestItemResolver></PageLevelTestItemResolver>
	<ContentTestDataSourceResolver></ContentTestDataSourceResolver>
	<InsertRenderings>
		<GetItem></GetItem>
		<GetLatestTestingItem></GetLatestTestingItem>
		<AddPageDesignerRenderings></AddPageDesignerRenderings>
		<AddRenderings></AddRenderings>
		<Testing></Testing>
		<EvaluateConditions></EvaluateConditions>
		<Personalization></Personalization>
	</InsertRenderings>
	<PageExtenders></PageExtenders>
	<ExpandMasterPages></ExpandMasterPages>
	<BuildTree></BuildTree>
	<InsertSystemControls></InsertSystemControls>
	<InsertUnusedControls></InsertUnusedControls>
	<BrowserCaching></BrowserCaching>
	<InjectExperienceExplorerControlPipeline></InjectExperienceExplorerControlPipeline>
</renderLayout>

到此就Sitecore就完成了一个整个HTTP request的包含所有基本pipeline的周期!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值